Чтение файла .txt с помощью NodeJS с использованием FS

Я пытаюсь использовать NodeJS для чтения текстового файла с помощью fs. Это код 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 и в том же каталоге есть файл .txt, почему он не работает?


person kgommers    schedule 11.04.2015    source источник


Ответы (1)


Ваша функция read возвращает результат функции fs.readFile, то есть undefined, поскольку в ней нет предложения возврата (используются обратные вызовы). Ваше второе предложение возврата находится в анонимной функции, поэтому оно возвращается только в эту область. Во всяком случае, ваша функция знает, что она завершена после первого возврата.

Стандартный способ использования 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);
});
person Keith Yong    schedule 11.04.2015