在 BS 架構中,路由的概念都是同樣的,可理解爲根據客戶端請求的 URL 映射到不一樣的方法實現,更多的通常都是針對 URL 中的路徑,或者是參數,又或者是錨點這些信息進行映射。javascript
const http = require('http') const url = require('url') const qs = require('querystring'); const util = require('util'); http.createServer((request, response) => { let urlObj = url.parse(request.url, true); let pathname = urlObj.pathname; let method = request.method.toUpperCase(); let params = urlObj.query; if(method == 'POST'){ let postData = ''; request.on('data', (_data) => { postData += '_data'; }) request.on('end', () => { postData = qs.parse(postData); let result = {}; switch(pathname){ case '/login': //鏈接數據庫,實現登錄邏輯 result = {status: true}; break; case '/register': //鏈接數據庫,實現註冊邏輯 result = {status: true}; break; default : result = {status: false, message: '沒有對應的請求'}; break; } response.end(util.inspect(result)) }) } else { let result = {}; switch(pathname){ case '/students': //鏈接數據庫,獲取學生信息 result = {status: true, data: [], params}; break; case '/orders': //鏈接數據庫,獲取訂單信息 result = {status: true, data: [], params}; break; default : result = {status: false, message: '沒有對應的請求', params}; break; } response.end(util.inspect(result)) } }).listen(88)