一、路由简介
- 路由,顾名思义,是指我们要针对不同的URL有不同的处理方式。例如处理/start的“业务逻辑”就应该和处理/upload的不同。
- 路由是指如何定义应用的端点(URIs)以及如何响应客户端的请求。
- 路由是由一个 URI、HTTP 请求(GET、POST等)和若干个句柄组成。
- 我们要为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码。因此,我们需要查看 HTTP 请求,从中提取出请求的 URL 以及 GET/POST 参数。
- 每一个路由都可以有一个或者多个处理器函数,当匹配到路由时,这个函数将被执行。
二、实例
接下来为你的应用创建一个目录,然后进入此目录并将其作为当前工作目录,如在D盘创建node-test文件夹。
1、创建服务端文件server.js
//server.js
var http=require('http');
var url=require('url');
function start(route) {
function onRequest(req,res) {
// 解析请求,包括文件名
var pathname=url.parse(req.url).pathname;
// 输出请求的文件名
console.log('request for'+pathname+'received');
//调用路由方法
route(pathname);
// Content Type: text/plain
res.writeHead(200,{'Content-Type':'text/plain'});
// 响应文件内容
res.write('hello world');
// 发送响应数据
res.end();
}
// 创建服务器
http.createServer(onRequest).listen(8888);
console.log('server has started');
}
exports.start=start;
2、创建路由文件router.js
//router.js
function route(pathname) {
console.log('about to route a request for'+pathname);
}
exports.route=route;
3、默认执行文件index.js
//index.js
var server=require('./server.js');
var router=require('./router.js');
server.start(router.route);
4、执行文件及结果
终端:
浏览器端: