node.js 路由详解
路由的基本使用
第一步:获取url跟目录下的字符
var http = require('http'); var url = require('url') http.createServer(function (request,response) { response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); if(request.url !== "/favicon.ico"){ //拿到浏览器访问的url路劲,并且替换掉前面的/ var pathname = url.parse(request.url).pathname.replace(/\//, '') console.log(pathname) response.end("") } }).listen(9000)
浏览器访问http://localhost:9000/login
后台拿到访问路劲login
第二步:路由功能的实现
首先创建一个路由模块文件router.js,下面代码分别由login和register
这种方式其实就是根据pathname来调用router中的login或者register方法
module.exports = { login (req,res) { res.write("我是login方法") }, register (req,res) { res.write('我是register方法') } }
var http = require('http'); //http是node中自带的一个模块,引入即可使用 var url = require('url'); var router = require('./router'); http.createServer(function (request,response) { response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); if(request.url !== "/favicon.ico"){ var pathname = url.parse(request.url).pathname.replace(/\//, ''); try { router[pathname](request,response); }catch(err) { console.log(err) } response.end("") } }).listen(9000)
如果在后面输入不存在的,则打印出错误信息
路由结合读取文件
首先创建两个html文件,login.html和register.html
创建主程序app.js
var http = require('http'); var url = require('url') var router = require('./router') http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); if(request.url !== "/favicon.ico"){ var pathName = url.parse(request.url).pathname.replace(/\//, '') router[pathName](request,response) response.end(); } }).listen(9000)
创建路由模块router.js
这是路由模块的文件,这里会使用到闭包函数,还会用到读取文件的模块,这里先调用读取文件模块中的异步读取,传入闭包函数