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 进行路由非常简单。