路由的基本使用
第一步:獲取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
這是路由模塊的文件,這里會使用到閉包函數,還會用到讀取文件的模塊,這里先調用讀取文件模塊中的異步讀取,傳入閉包函數