响应式手机网站怎么做,网站大图做多大尺寸,wordpress 4.9中文版,东营智能网站设计[node] Node.js的路由 路由 路由解析路由信息的整合URL信息路由处理逻辑路由逻辑与URL信息的整合路由的使用 路由 路由解析
路由需要提供请求的 URL 和其他需要的 GET/POST 参数#xff0c;随后路由需要根据这些数据来执行相应的代码。
因此#xff0c;根据 HT… [node] Node.js的路由 路由 路由解析路由信息的整合URL信息路由处理逻辑路由逻辑与URL信息的整合路由的使用 路由 路由解析
路由需要提供请求的 URL 和其他需要的 GET/POST 参数随后路由需要根据这些数据来执行相应的代码。
因此根据 HTTP 请求从中提取出请求的 URL 以及 GET/POST 参数。这一功能应当属于路由还是服务器(亦或一个单独模块的功能)确实值得探讨但这里暂定其为HTTP服务器的功能。
目前所有数据都会包含在 request 对象中该对象作为 onRequest() 回调函数的第一个参数传递。但是为了解析这些数据我们需要额外的 Node.JS 模块它们分别是 url 和 querystring 模块。
var url require(url);
var querystring require(querystring);var data http://localhost:8888/start?foobarhelloworld;const query url.parse(data).query;
console.log(query); // foobarhelloworld
console.log(url.parse(data).pathname); // /start
console.log(querystring.parse(query)[foo]); // bar
console.log(querystring.parse(query)[hello]); // world路由信息的整合
URL信息
server.js 用于获取浏览器URL地址该信息是路由需要使用到的信息
var http require(http);
var url require(url);function start() {function onRequest(request, response) {var pathname url.parse(request.url).pathname;console.log(Request for pathname received.);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;以上代码达成通过 URL 路径来区别不同请求–使得路由之后还未完成可以将请求(以 URL 路径为基准)映射到处理程序上。
路由处理逻辑
router.js 简单的路由处理逻辑模块
function route(pathname) {console.log(About to route a request for pathname);
}
exports.route route;以上代码没有具体的逻辑处理你之后可以根据需要添加此时只是封装了路由的处理方法。
路由逻辑与URL信息的整合
然后先来看看如何把路由和服务器整合起来。
服务器知道路由的存在并应加以有效利用。可以通过硬编码的方式将这一逻辑处理绑定到服务器上但是对于推荐模块开发的情况下使用依赖注入的方式较松散地添加路由模块会使得耦合性更低也方便以后的代码变更。
所以对于server.js 文件做出如下更改将路由函数作为参数传递过去
var http require(http);
var url require(url);function start() {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;路由的使用
index.js 文件服务器使用路由的方式–路由函数注入到服务器中
var server require(./server);
var router require(./router);server.start(router.route);以上整体是对路由信息的获取与如何添加路由处理逻辑的一个简单介绍是一种方法上的介绍