math1as
本帖最后由

本帖最后由 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]