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 進行路由非常簡單。