1

我一直在网上寻找一种获取如下 URL 的方法:

example.com/games/game1代替example.com/games?id=game1

我浏览了 Node.JS 网站,但找不到任何似乎适用于我的情况的内容。
非常感谢任何帮助。我找到了一个使用 .HTACCESS 文件执行此操作的答案,但我找不到 node.js 替代方案。我发现的问题/答案是,创建漂亮的 URL

非常感谢任何帮助。

4

2 回答 2

1

此 URLexample.com/games?id=game1将 id 作为 GET 参数传递。要将其替换为example.com/games/game1,您只需制定有关如何传递此 ID 的策略。这种策略通常被node.js称为路线,它们是如何实现目标的大量选择:

app.get('/games/:id', games.view);

然后,在你的 game.js 文件中:

exports.view = function(req, res){
  console.log(req.params.id); //gives you game1
  //...
};

- 另一种方法是使用特定于路由的东西(而不是整个框架)。导演想到了。

var viewGame = function(gameId) { console.log(gameId); };

var routes = {
  '/games/:gameId': viewGame
};
于 2013-07-12T22:45:18.547 回答
0

您可以列出所有请求,然后解析request.url以决定要呈现哪个页面或是否返回 404 / 302 或任何您想做的事情。这只是一个小例子。您可能希望将路由与逻辑分开:

var http = require("http");

http.createServer(function(request, response) {
    var parts = request.url.split('/');
    if(parts[0] === 'games'){
        var id = parts[1];
        // Check if valid id
        // And render the correct page
    }
}).listen(80);
于 2013-07-12T22:46:23.173 回答