我在以下文件结构中使用Node.exe
Node/
node.exe
index.js
/view
index.html
运行以下代码时:
var html;
fs.readFileSync('/view/index.html', function(err, data) {
if(err){
throw err;
}
html = data;
});
我收到以下错误:
Error: ENOENT, The system cannot find the file specified. '/view/index.html'
你能看到导致错误的原因吗?我对node.js很新。
其他信息: 我正在运行Windows 7 64位,最新版本的node.exe。
我找到了解决方案!
当node.exe通过cmd运行时,node.exe的默认目录是user ....这就是我出错的地方,它使用了与node.exe所在位置不同的目录。
答案 0 :(得分:1)
少数事情:
粗略的代码将是:
// get real path from relative path
fs.realpath('./view/index.html', function(err, resolvedPath) {
// pass the resolved path to read asynchronously
fs.readFile(resolvedPath, function(err, data) {
// assign the variable per your use case
html = data;
})
});
请注意,我使用的是版本4.11(最新的稳定版本)
答案 1 :(得分:0)
您可能想要失去同步部分。有回调时只有readFile
。
另外:./ path,not / path。