Четене на .txt файл с NodeJS с помощта на FS

Опитвам се да използвам NodeJS за четене на txt файл с помощта на 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