我是新来的Node.js和Express.js及其路由。它的设置都正确,除了下面的代码外,它都可以工作。ExpressJS sendFile()不能发送URL GET参数
我尝试下面的代码:
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 | Error: ENOENT, stat '/opt/lampp/htdocs/papei/public/game/32'
我搜索这个错误,我想它有没有被发现的文件做。问题是,/public/game.html
存在。如果我删除sendFile()
中的部分,那么它就可以工作。但我想sendFile()
正在寻找一个确切的网址,并没有找到它。
有没有办法使用ExpressJS发送URL GET参数?
我正在尝试重定向,但它不起作用。我不确定你将如何制作模板 - 你能否提供相关文档?谢谢。 –
另外,“express-static”是什么意思?它与我目前使用的代码有什么不同? –
如果您尝试使用重定向,请确保您的快速静态中间件位于重定向路由的下方。 [Here](http://expressjs.com/en/guide/using-template-engines.html)是解释模板引擎的文档,[here](http://expressjs.com/en/starter/static-files .html)是提供静态文件(又名'express-static')的文档。 –