nodejs動態路由

主要功能:根據輸入路由的不一樣,加載訪問不一樣的HTML頁面
在這裏我不得不說webstorm真的是一個很棒的開發工具,我學習nodejs也是用的它。
文件目錄:
html

first_server.js:
首先咱們經過url獲取當前路徑,變量path來存儲。
path由於咱們輸入路由的不一樣而改變
url.parse(request.url).pathname獲取當前總路徑,path.substr(1)去掉根號‘/’
require導入模塊是若是是導入node以封裝好的模塊能夠直接用名字導入,到時若是須要導入的是自定義模塊須要咱們把文件路徑加上,如個人路由模塊router=require('./module/router')node

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,會獲得如下結果
web

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(輸出模塊)webstorm

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

運行結果:

工具

相關文章
相關標籤/搜索