javascript - 如何从两个不同的 fs 方法创建对象?

标签 javascript node.js filesystems

我想用文件名和fileStat创建对象,所以在下面的代码中我正在使用异步检查统计信息,对于文件名,我现在使用readDir,一旦我有了值,我如何创建对象数组?我正在尝试获取文件名及其创建日期并将其发送给客户端objToReturn。知道我怎样才能完成这项任务吗?

app.js

function readDirectory(callback) {
    var dirPath = './logs/ditLogs';
    //this will get you list of all files. in directory
    var files = fs.readdirSync(dirPath);
    var objToReturn = [{
        fileName: '',
        fileStat: ''
    }];
    //then using async do like this
    async.eachSeries(files, function(file, callback) {
        var filePath = path.join(dirPath, file);
        fs.stat(filePath, function(err, stats) {
            objToReturn.fileStat = stats;
            //write stats data into objToReturn
            fs.readdir(path, function(err, items) {
                objToReturn.filename = items;
            });

            callback();
        });
    }, function(err) {
        //final callback when all files completed here send objToReturn to client
        callback(objToReturn);
    });

最佳答案

好的,我想我明白你想在这里做什么。您想要读取给定目录中的所有文件路径,然后对于每个文件,收集信息,然后将此信息返回给给定回调。现在看来,您正在将这些 Prop 添加到数组 objToReturn 中,而不是添加到每个对象并将其推送到 objToReturn 中。通过这种方式,您可以覆盖每个异步读取的属性。

您还使用 fs.readdir(path, function(err, items) { ,我认为您的意思是引用您之前声明的 filePath

尝试如下:

async.eachSeries(files, function(file, callback) {
    var filePath = path.join(dirPath, file);
    var fileInfo = {};
    fs.stat(filePath, function(err, stats) {
        fileInfo.fileStat = stats;
        //write stats data into objToReturn
        fs.readdir(filePath, function(err, items) {
            fileInfo.filename = items;
        });
        objToReturn.push(fileInfo);
        callback();
    });
}, function(err) {

关于javascript - 如何从两个不同的 fs 方法创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39234301/

相关文章:

java - Hadoop 2.6.0浏览文件系统Java

windows - 如何确定文件的碎片化程度?

linux - 如何找到目录中最新修改文件的时间戳(递归)?

JavaScript Worker - 并行写入控制台

javascript - 通过中间件以express方式访问get请求

javascript - Sinon 不 Mocking db-mysql Node.js 库

node.js - "WebKitFormBoundary"使用nodejs解析POST时

javascript - 正则表达式不匹配

javascript - 为什么刷新时不再对 Firebase 用户进行身份验证?

javascript - react |在jsx中渲染html标签