第六课 自己实现路由改进,针对不同请求的路径进行响应

本文介绍了一个基于Node.js实现的简易服务器程序,包括了server.js、route.js和requestHandlers.js等核心文件的内容。该服务器能够处理不同的HTTP请求,并通过简单的路由机制调用相应的处理函数。

1 server.js

var http = require('http');
var url = require('url');
function start(route,handler)
{
function onRequest(req,res)
{
var pathName = url.parse(req.url).pathname;
//客户端页面传递过来的route 函数
route(pathName,handler,res);
}
http.createServer(onRequest).listen(5000);
console.log('Server Started');
}

exports.start = start;

2 route.js

function route(pathName,handler,res)
{
console.log('router user request url:'+pathName+'\n');
if(typeof handler[pathName]==='function')
{
handler[pathName](res);
}else{
console.log('No request handler found for '+pathName);
}
}
exports.route = route;

 

3 requestHandlers.js

var exec = require('child_process').exec;
//使用 response直接输出 就不会阻塞其他请求
function start(res){
exec("ls -lah",function(error, stdout, stderr){
res.writeHead(200,{"Content-Type":"text/plain"});
res.write('start...');
res.write(stdout);
res.write('end...');
res.end();
});
}

function upload(res){
res.writeHead(200,{"Content-Type":"text/plain"});
res.write(stdout);
res.end();
}

exports.start = start;
exports.upload = upload;

 

4 index.js

var server = require('./server');
var route = require('./route');
var requestHandlers = require('./requestHandlers');
var handle ={}
handle["/"]= requestHandlers.start;
handle["/start"]= requestHandlers.start;
handle["/upload"]= requestHandlers.upload;

server.start(route.route,handle);

//分析 从index.js开始 handle对象存储的是 路由字符串和方法指针

server.js 取得当前用户请求的路径 来执行 路径对应的方法 实际执行的是requestHandlers中的方法

 

转载于:https://www.cnblogs.com/3dianpomian/p/4847355.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值