我有这段代码:
app.get('/', function(req, res) {
res.sendfile('public/index.html');
});
app.use("/public", express.static(__dirname + '/public'));
这给了我错误:
express deprecated res.sendfile:改为使用res.sendFile
因此,正如此类似帖子(express js error : "express deprecated res.sendfile: Use res.sendFile instead")中所建议的那样,我尝试将sendfile
重命名为sendFile
,但它又给我一个错误:
TypeError:path必须是绝对路径或指定root到res.sendFile
在ServerResponse.sendFile(/Users/nacho4d/dev-enquete/node_modules/express/lib/response.js:394:11)
at /Users/nacho4d/dev-enquete/app.js:37:6
我该怎么办?我不确定是否应该传递绝对路径(因为下一行:app.use("/public", ...
。
我不太清楚指定root到res.sendFile 的含义。
感谢任何帮助。
答案 0 :(得分:0)
我该怎么办?我不确定是否应该传递绝对路径(因为下一行:
app.use("/public", ...
。
我无法声称对express非常熟悉,但我怀疑你必须传递给sendFile
的路径与路由有关。很可能你只需要将绝对路径传递给文件系统中的文件。
我也不太清楚将root指定为res.sendFile的意义。
如果查看documentation,可以看到sendFile
接受选项对象作为第二个参数。 root
是其中一个选项:
root:相对文件名的根目录。
它还有一个示例,说明如何使用这些选项(包括root
)。
如果你传递一个相对文件路径,快递似乎不知道从哪里开始寻找文件(文件所在的目录?服务器启动的目录?),因此它想要你告诉它。