
本帖最后由 math1as 于 2016-6-17 14:42 编辑
简单的route功能:
由于nodeJS其实除了是脚本语言外,也直接充当了web server的角色。
所以我们可以直接在其中实现路由的功能。
在index.js中源码如下
[mw_shl_code=javascript,true] var server=require('./server');
var route=require('./route');
server.start(route.route); //这里是传递了route模块的一个导出函数(方法)
[/mw_shl_code]
这里调用其他自写模块时,用使用模块名.方法来把它当做一个参数进行传递。
showpage.js中我们写入对传入pathname的处理函数
其实这就是MVC框架中的controller 我们在这里实现控制器的功能server.js则是核心,在这里用createSever方法来创建一个新的http server
[mw_shl_code=javascript,true]
var http = require('http');
var url = require('url'); //用于解析请求的文件名
var querystring = require('querystring'); //用于解析请求的参数
server.js则是核心,在这里用createSever方法来创建一个新的http server
[mw_shl_code=javascript,true] var http = require('http');
var url = require('url'); //用于解析请求的文件名
var querystring = require('querystring'); //用于解析请求的参数
function start(route)
{
function server(request, response) {
var pathname=url.parse(request.url).pathname; response.writeHead(200, {'Content-Type': 'text/html'});
var htm=route(pathname); //通过路由来获得源码 response.writ(htm);
}
http.createServer(server).listen(8888);
}
exports.start = start;[/mw_shl_code]