使用FS读取NodeJS的.txt文件

时间:2015-04-11 12:17:12

标签: node.js fs

我试图通过使用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,为什么它不起作用?

1 个答案:

答案 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);
});