我一直在网上寻找获取网址的方法:
example.com/games/game1
代替example.com/games?id=game1
我查看了Node.JS网站,但我找不到任何似乎适合我情况的内容 非常感谢任何帮助。我找到了一个使用.HTACCESS文件做到这一点的答案,但我找不到node.js替代方案。我发现的问题/答案是creating nice looking URLs
非常感谢任何帮助。
答案 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);