【发布时间】:2016-02-14 00:46:54
【问题描述】:
我是 Node.js 和 Express.js 及其路由的新手。一切设置正确,除了以下代码外,一切正常。
我尝试了以下代码:
app.get("/game/*", function(req, res) {
res.sendFile(__dirname + "/public/game.html?gameId=" + /\/([^\/]+$)/.exec(req.url)[1]);
});
目标是将带有/game/{gameId}(其中gameId 是某个数字)的所有请求发送到/public/game.html?gameId={gameId}。
它正确地获取带有/game/ 的请求,从URL 中获取gameId 参数,并尝试sendFile() 它。但是,sendFile() 不起作用,说:
web.1 |错误:ENOENT,stat '/opt/lampp/htdocs/papei/public/game/32'
我已经搜索过这个错误,我猜它与找不到文件有关。问题是,/public/game.html 存在。如果我删除sendFile() 中的?gameId... 部分,那么它可以工作。但我猜sendFile() 正在寻找一个 exact URL,但没有找到它。
有没有办法使用 ExpressJS 发送 URL GET 参数?
【问题讨论】: