【问题标题】:express js error : “express deprecated res.sendfile: Use res.sendFile instead”express js 错误:“express deprecated res.sendfile: Use res.sendFile instead”
【发布时间】:2015-06-20 22:00:18
【问题描述】:

我有这个代码:

app.get('/', function(req, res) {
        res.sendfile('public/index.html');
}); 

app.use("/public", express.static(__dirname + '/public'));

这给了我错误:

表示不推荐使用 res.sendfile:改用 res.sendFile

因此,正如这个类似线程 (express js error : "express deprecated res.sendfile: Use res.sendFile instead") 中所建议的,我尝试将 sendfile 重命名为 sendFile,但它给了我另一个错误:

类型错误:路径必须是绝对路径或指定 res.sendFile 的根目录
在 ServerResponse.sendFile (/Users/nacho4d/dev-enquete/node_modules/express/lib/response.js:394:11)
在 /Users/nacho4d/dev-enquete/app.js:37:6

我应该在这里做什么?我不确定是否应该通过绝对路径(因为下一行:app.use("/public", ...specify the root to res.sendFile的意思我也不太明白。

感谢任何帮助。

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    我应该在这里做什么?我不确定是否应该传递绝对路径(因为下一行:app.use("/public", ...

    我不能声称对 express 非常熟悉,但我怀疑你必须传递给sendFile 的路径与路由有什么关系。很可能您只需将绝对路径传递给文件系统中的文件。

    我也不太明白 res.sendFile 指定根是什么意思。

    如果您查看documentation,您可以看到sendFile 接受一个选项对象作为第二个参数。 root 是其中一种选择:

    root:相对文件名的根目录。

    它还有一个示例说明如何使用这些选项(包括root)。

    如果你传递一个相对文件路径,express 似乎不知道从哪里开始查找文件(文件所在的目录?服务器启动的目录?),因此它希望你告诉它。

    【讨论】:

    • 谢谢!在做:var options = { root: __dirname };res.sendFile('public/index.html', options); 解决了问题!
    猜你喜欢
    • 2014-11-08
    • 2014-11-29
    • 2023-04-03
    • 2021-11-09
    • 2019-09-03
    • 2018-12-25
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    相关资源
    最近更新 更多