这是我的文件夹结构:
来自app.js
我正在做的事情:
res.sendFile('escape_iframe.html' , {root : __dirname});
我得到的错误是:
Error: ENOENT, stat '/app/escape_iframe.html'
我猜这是一种可怕的方式,说在提供的路径中找不到该文件?
无论如何,正如您所知,我只想提供一个sibling
app.js
的文件(这是res.sendFile(...
调用的文件格式)
我也尝试过:res.sendFile('escape_iframe.html');
我得到了:path must be absolute or specify root to res.sendFile
我做错了什么?
答案 0 :(得分:1)
使用.
指定的路径相对于当前工作目录,而不是相对于脚本文件。因此,如果您运行节点app.js,则可能会找到该文件,但如果您运行节点文件夹/ app.js则不会找到该文件。
要创建相对于脚本的路径,必须使用__dirname
变量。
res.sendFile(__dirname + '/path/to/escape_iframe.html');
答案 1 :(得分:1)
.
指定的路径与路径相关,任意数量的正斜杠都被截断为单斜杠。当进程node filename.js
无法找到文件名时,您可能会收到此错误。
https://nodejs.org/api/errors.html#errors_enoent_no_such_file_or_directory
我的建议是::
var path = require('path')
//process.cwd() returns the current directory of the project
res.sendFile(process.cwd(),'/path/to/escape_iframe.html');