我有这个代码:
app.get('/', function(req, res) {
res.sendfile('public/index.html');
});
app.use("/public", express.static(__dirname + '/public'));
这给了我一个错误:
表达不推荐使用的res.sendfile:使用res.sendfile代替
因此,正如这个类似线程中所建议的那样(express js错误:"express deprecated res.sendfile:改用res.sendfile"),我尝试将sendfile
重命名为sendFile
,但它给了我另一个错误:
TypeError:路径必须是绝对路径或指定根到ServerResponse.sendFile上的res.sendFile
(/Users/nacho4d/dev/enquet/node_modules/express/lib/response.js:394:11)
在/Users/nacho4d/dev-enquet/app.js:37:6
我应该在这里做什么?我不确定我是否应该通过一个绝对路径(因为下一行:app.use("/public", ...
。我不太清楚的含义,也不太清楚指定res.sendFile的根。
感谢您的帮助。
我应该在这里做什么?我不确定我是否应该通过一条绝对路径(因为下一行:
app.use("/public", ...
.
我不能声称对express非常熟悉,但我怀疑你必须传递到sendFile
的路径是否与路由有关。最有可能的情况是,您只需要向文件系统中的文件传递一个绝对路径。
我也不太清楚指定res.sendFile的根的含义。
如果查看文档,可以看到sendFile
接受一个选项对象作为第二个参数。root
是选项之一:
root:相对文件名的根目录。
它还有一个示例,显示了如何使用选项(包括root
)。
如果你传递一个相对的文件路径,express似乎不知道从哪里开始查找文件(文件所在的目录?服务器启动的目录?),因此它希望你告诉它。