主要功能:根據輸入路由的不同,加載訪問不同的HTML頁面
在這里我不得不說webstorm真的是一個很棒的開發工具,我學習nodejs也是用的它。
文件目錄:
first_server.js:
首先我們通過url獲取當前路徑,變量path來存儲。
path因為我們輸入路由的不同而改變
url.parse(request.url).pathname獲取當前總路徑,path.substr(1)去掉根號‘/’
require導入模塊是如果是導入node以封裝好的模塊可以直接用名字導入,到時如果需要導入的是自定義模塊需要我們把文件路徑加上,如我的路由模塊router=require('./module/router')
var http=require('http');
var url=require('url');
var router=require('./module/router');//導入路由模塊,需要修改為自己得文件路徑
http.createServer(function (request,response) {//創建服務
response.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'});//輸出類型
if (request.url!=='/favicon.ico'){//清除二次訪問
var path=url.parse(request.url).pathname;
path=path.substr(1);//獲取當前路徑
router[path](request,response);//調用路由
console.log(path);
}
}).listen(5200);//端口號為5200
例如輸入路徑:login/xxk,會得到以下結果
router.js:(路由模塊,不能有具體輸出,起映射作用)
我簡單寫了兩個選項,一個登陸和一個注冊,一會根據瀏覽器輸入地址的不同,加載頁面
var url = require('url');
var optfile=require('./optfile');//導入自定義模塊要加路徑'./'
module.exports={
login:function (req,res) {
optfile.login(req,res);
},
register:function (req,res) {
optfile.register(req,res);
}
}
optfile.js(輸出模塊)
var fs = require('fs');
function recall(res,data){
res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'});
res.end(data);//瀏覽器輸出
}
module.exports={
login:function (req,res) {
var data = fs.readFile('./file/login.html',function (err,data) {
if (!err){
data=data.toString();
recall(res,data);
// res.end(data)
console.log(99)//控制台輸出
}else {
res.end('err');
}
})
},
register:function (req,res) {
// res.write('這是注冊頁面')
var data = fs.readFile('./file/register.html',function (err,data) {
if (!err){
recall(res,data);
}
})
}
};
login.html
register.html
運行結果: