Hello World 基本路由

瞭解瞭如何使用節點建立 HTTP 伺服器之後 ,瞭解如何根據使用者導航到的路徑執行操作非常重要。這種現象稱為路由

最基本的例子是檢查 if (request.url === 'some/path/here'),然後呼叫一個用新檔案響應的函式。

這方面的一個例子可以在這裡看到:

const http = require('http');

function index (request, response) {
    response.writeHead(200);
    response.end('Hello, World!');
}

http.createServer(function (request, response) {
    
    if (request.url === '/') {
        return index(request, response);
    }

    response.writeHead(404);
    response.end(http.STATUS_CODES[404]);

}).listen(1337);

但是,如果你繼續定義這樣的路線,你最終會得到一個巨大的回撥函式,我們不希望像這樣的巨大混亂,所以讓我們看看我們是否可以清理它。

首先,讓我們將所有路由儲存在一個物件中:

var routes = {
    '/': function index (request, response) {
        response.writeHead(200);
        response.end('Hello, World!');
    },
    '/foo': function foo (request, response) {
        response.writeHead(200);
        response.end('You are now viewing "foo"');
    }
}

現在我們已經在一個物件中儲存了 2 個路由,現在我們可以在主回撥中檢查它們:

http.createServer(function (request, response) {
    
    if (request.url in routes) {
        return routes[request.url](request, response);
    }

    response.writeHead(404);
    response.end(http.STATUS_CODES[404]);

}).listen(1337);

現在,每次嘗試瀏覽網站時,都會檢查路徑中是否存在該路徑,並呼叫相應的功能。如果未找到路由,則伺服器將以 404(未找到)進行響應。

而且你有它 - 使用 HTTP Server API 進行路由非常簡單。