我对在Node.js中读取文件感到非常困惑。
fs.open('./start.html', 'r', function(err, fileToRead){
if (!err){
fs.readFile(fileToRead, {encoding: 'utf-8'}, function(err,data){
if (!err){
console.log('received data: ' + data);
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(data);
response.end();
}else{
console.log(err);
}
});
}else{
console.log(err);
}
});
文件start.html
与尝试打开和读取它的文件位于同一目录中。
然而,在控制台中,我得到了:
{错误: ENOENT,打开'./start.html‘错误号: 34,代码:'ENOENT',路径:'./start.html’}
有什么想法吗?
发布于 2013-11-01 15:13:08
使用path.join(__dirname, '/start.html')
;
var fs = require('fs'),
path = require('path'),
filePath = path.join(__dirname, 'start.html');
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
if (!err) {
console.log('received data: ' + data);
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(data);
response.end();
} else {
console.log(err);
}
});
感谢dc5。
发布于 2015-04-26 12:10:09
使用Node 0.12,现在可以同步执行此操作:
var fs = require('fs');
var path = require('path');
// Buffer mydata
var BUFFER = bufferFile('../public/mydata.png');
function bufferFile(relPath) {
return fs.readFileSync(path.join(__dirname, relPath)); // zzzz....
}
fs
是文件系统。readFileSync()返回一个缓冲区,如果需要,也可以返回字符串。
fs
正确地假设相对路径是一个安全问题。path
是一种变通方法。
要加载为字符串,请指定编码:
return fs.readFileSync(path,{ encoding: 'utf8' });
发布于 2016-10-23 15:21:14
1).For ASync:
var fs = require('fs');
fs.readFile(process.cwd()+"\\text.txt", function(err,data)
{
if(err)
console.log(err)
else
console.log(data.toString());
});
2).For同步:
var fs = require('fs');
var path = process.cwd();
var buffer = fs.readFileSync(path + "\\text.txt");
console.log(buffer.toString());
https://stackoverflow.com/questions/18386361
复制相似问题