如何获得好看的URLS - Node.JS

时间:2013-07-12 22:25:28

标签: javascript node.js url

我一直在网上寻找获取网址的方法:

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

我查看了Node.JS网站,但我找不到任何似乎适合我情况的内容 非常感谢任何帮助。我找到了一个使用.HTACCESS文件做到这一点的答案,但我找不到node.js替代方案。我发现的问题/答案是creating nice looking URLs

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

此网址example.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
  //...
};

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

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

var routes = {
  '/games/:gameId': viewGame
};

答案 1 :(得分: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);