Node.js 使用FS读取带有NodeJS的.txt文件

Node.js 使用FS读取带有NodeJS的.txt文件,node.js,fs,Node.js,Fs,我正在尝试使用NodeJS通过fs读取一个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 =

我正在尝试使用NodeJS通过fs读取一个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,为什么它不工作?

您的
read
函数正在返回
fs.readFile
函数的结果,该函数是
未定义的,因为它没有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);
});