如何获得漂亮的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 };