我试图通过使用fs来使用NodeJS来读取txt文件。这是app.js的代码:
var fs = require('fs');
function read(file) {
return fs.readFile(file, 'utf8', function(err, data) {
if (err) {
console.log(err);
}
return data;
});
}
var output = read('file.txt');
console.log(output);
当我这样做时:
node app.js
它说
undefined
我安装了fs并且在同一目录中有一个file.txt,为什么它不起作用?
答案 0 :(得分:2)
您的read
函数返回fs.readFile
函数的结果,即undefined
,因为它没有return子句(它使用回调)。您的第二个return子句在匿名函数中,因此它只返回到该范围。无论如何,你的函数在第一次返回后知道它已经完成了。
使用fs.readFile
的标准方法是使用回调。
var fs = require('fs');
function read(file, callback) {
fs.readFile(file, 'utf8', function(err, data) {
if (err) {
console.log(err);
}
callback(data);
});
}
var output = read('file.txt', function(data) {
console.log(data);
});