一、使用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实现访问路由