Node.js的路由

摘要:当服务端接收到HTTP请求时,可以通过onRequest() 获取到url, pathname,query,及paramParams参数;为了解析这些数据需要使用url和querystring模块

1. 路由的原理:

当服务端接收到HTTP请求时,可以通过onRequest() 获取到url, pathname,query,及paramParams参数

为了解析这些数据需要使用url和querystring模块

 

当在服务端的onRequest()方法中解析出pathname后,将pathname传入路由模块,路由模块将进行分发处理;即需要在解析出pathname后及创建Response对象之前将pathname传给路由模块进行分发处理

伪代码是这样的:

# 请求处理函数
function onRequest(url){
    解析url得到pathname
    pathname = querystring.parse(url)

      #调用路由函数
    route(pathname)
    返回
    createResponse()
}

# 启动服务器等待客户端请求
server.start(onRequest())


Node.js的路由实现如下:

sever.js

var http = require("http");
var url = require("url");
 
function start(route) {
  function onRequest(request, response) {
    var pathname = url.parse(request.url).pathname;
    console.log("Request for " + pathname + " received.");
 
    route(pathname);
 
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
  }
 
  http.createServer(onRequest).listen(8888);
  console.log("Server has started.");
}
 
exports.start = start;


router.js

function route(pathname) {
  console.log("About to route a request for " + pathname);
}
 
exports.route = route;


index.js

var server = require("./server");
var router = require("./router");
 
server.start(router.route);


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_2358