我正在尝试阅读文件,但我收到了以下错误:
false {[错误:ENOENT:没有这样的文件或目录,打开'./www/text.html']错误:-2,代码:'ENOENT',系统调用:'打开',
路径:'./www/text.html'}
我验证了text.html存在于www文件中
这是我的代码
var http = require('http');
var fs = require('fs');
http.createServer((req,res)=>{
var fsFile = './www' + req.url;
fs.readFile(fsFile ,(err,data)=>{
console.log(req.url)
if(err){
console.log('false',err);
}else{
res.write(data)
}
res.end();
})
}).listen(7077)
我该怎么做才能解决这个问题?
非常感谢!
答案 0 :(得分:1)
.readFile()
的文件路径必须是绝对的。
试试这个:(注意在第4行使用全局变量__dirname
)
var http = require('http'); var fs = require('fs');
http.createServer((req,res)=>{
var fsFile = __dirname + '/www' + req.url;
fs.readFile(fsFile ,(err,data)=>{
console.log(req.url)
if(err){
console.log('false',err);
}else{
res.write(data)
}
res.end();
})
}).listen(7077)
__dirname
返回调用节点进程的绝对文件路径。
此变量的同义词是函数process.cwd()
(当前工作目录)