获取Node.js以读取和打印目录中所有文本文件的数据

时间:2015-08-20 17:40:40

标签: javascript node.js readfile

我正在尝试让节点打开目录中的每个文本文件,以便将它们放入数组中。我已经尝试过readdir和readdirSync,它(它)获取了一个文件名列表,但我希望它也能打印文件内容,我所做的一切都让它变得更糟。 (我想我想要readdirSync,所以它在获取其他任何内容之前获取所有数据?)

var filenames = [];
var fs = require("fs");

var path = require("path");

var p = "6er/"
fs.readdirSync(p, function (err, files) {
    if (err) {
        throw err;
    }

    files.map(function (file) {
        return path.join(p, file);
    }).filter(function (file) {
        return fs.statSync(file).isFile();
    }).forEach(function (file) {
       filenames.push(file);
        console.log(file);
    });
});

for(var f in filenames){
 fs.readFile(p+f, function (err, data){
            var results = data;
            console.log(results);
 });
}

1 个答案:

答案 0 :(得分:0)

Readdirsync不会那样工作,它不使用回调,因为它是同步...请使用readdir:https://nodejs.org/api/fs.html#fs_fs_readdir_path_callback

对于这个问题,我建议一种处理所有异步的方法,这样你在读取所有这些文件时就不会遇到阻塞线程的问题,请研究这个包:https://github.com/caolan/async

如果您需要更多帮助添加评论,我会回复