在 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)