12、Node.js 路由

_nbloser發表於2018-06-20

這裡實現的好像就是把路由和伺服器相結合起來。具體需要引入 url 模組和 http 模組
為路由提供請求的 URL 和其他需要的 GET 及 POST 引數,隨後路由需要根據這些資料來執行相應的程式碼
需要檢視 HTTP 請求,從中提取出請求的 URL 以及 GET/POST 引數,所以需要引入url 和 querystring模組

#####################################################################################
通過給 onRequest() 函式加上一些邏輯,用來找出瀏覽器請求的 URL 路徑:
//1_server.js

var http = require(`http`);
var url = require(`url`);

function start() {
    function onRequest(request, response) {
        var pathname = url.parse(request.url).pathname;
        console.log(`Request for ` + pathname + `received`);
        response.writeHead(200, {`Content-Type`: `text/plain`});
        response.write(`love A`);
        response.end();
    }
    var server= http.createServer(onRequest);
    server.listen(8888);
    console.log(`server has started`);
}

exports.start = start;

現在可以通過請求的 URL 路徑來區別不同請求了–這使我們得以使用路由(還未完成)來將請求以 URL 路徑為基準對映到處理程式上
在我們所要構建的應用中,這意味著來自 /start 和 /upload 的請求可以使用不同的程式碼來處理。稍後我們將看到這些內容是如何整合到一起的。
//1_router.js

function route(pathname) {
    console.log(`About to route a request for ` + pathname);
}

exports.route = route;

相應擴充套件 index.js,使得路由函式可以被注入到伺服器中:
//1_index.js

var server = require("./server"); 
var router = require("./router"); 

server.start(router.route);

 

相關文章