如何获得漂亮的URLS – Node.JS

我一直在networking上寻找一种方式来获得像这样的URL:

example.com/games/game1而不是example.com/games?id=game1

我查看了Node.JS网站,但是找不到适用于我的情况的任何内容。
任何帮助,非常感激。 我find了一个使用.HTACCESS文件的答案,但找不到node.js替代方法。 我发现的问题/答案是, 创造漂亮的url

任何帮助,非常感激。

您可以列出所有请求,然后parsingrequest.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); 

这个URL example.com/games?id=game1正在传递这个id作为一个GET参数。 要用example.com/games/game1取代它,你只需要有一个关于如何传递这个ID的策略。 这个策略通常被称为node.js作为路由,并且它们在如何实现你的目标方面有很多select:

  • 如果你使用Express框架,你已经有能力做这样的事情(基于TJ Holowaychuk的路由分离的例子 ):

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 };