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