一、使用http模块创建一个http服务
通过request对象解析url地址,截取参数,实现不同的请求执行不同的方法
server.js 内容:
var http = require("http");
var url = require("url");
var route = require("./route"); //导入我们自己写的route模块
//创建一个Http服务
http.createServer(function (request,response) {
var reqUrl = request.url; //获取请求url
if(reqUrl!="/favicon.ico"){
console.log("收到请求 : "+request.url);
//解析路径 进行路由
var path = (url.parse(reqUrl).pathname).replace(/\//,"");
try{
route[path](request,response);
}catch (err){ //对异常进行捕获 ,访问的方法不存在
console.log("参数错误:"+err);
response.write(err.toString());
response.end("");
}
}
}).listen(3000);
console.log("server is running at http://127.0.0.1:3000/ !");
二、写一个路由模块,通过解析的参数调用不同的方法
route.js
module.exports = {
"login" : function (request,response) {
console.log("login...");
response.end("");
},
"regist" : function (request,response) {
console.log("regist...");
response.end("");
},
}
var route = require("./route");
//引用该模块 通过 route['login'](request,response) 可调用login方法 若不存在则会抛出异常
启动服务器后 ,浏览器访问 localhost:3000/login 控制台输出 login..
三、总结
1.通过判断favicon.ico防止nodejs重复请求
if(reqUrl!="/favicon.ico"){}
2.require("url")引入url模块来帮助解析url:参考API : http://nodejs.cn/api/url.html
3.每个请求结束务必使用response.end()结束,否则服务器将一直处于请求状态
4.捕获异常使程序更加健壮
转载请注明:左手代码右手诗 » Node.js-解析URL实现访问路由


