微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 使用本机Node.js驱动程序将MongoDB结果写入文件

我试图使用本机Node.js驱动程序将MongoDB查询的结果写入文件.我的代码如下(基于这篇文章:Writing files in Node.js):

var query = require('./queries.js');
var fs = require('fs');

var MongoClient = require('mongodb').MongoClient;

MongoClient.connect("mongodb://localhost:27017/test", function(err, db) {
    if(err) { return console.dir(err); }

    var buildsColl = db.collection('blah');

    collection.aggregate(query.test, function(err, result) {
        var JSONResult = JSON.stringify(result);
        //console.log(JSONResult);

        fs.writeFile("test.json", JSONResult, function(err) {
            if(err) {
                console.log(err);
            } else {
                console.log("The file was saved!");
            }
        });
    });

    collection.aggregate(query.next, function(err, result) {
        var JSONResult = JSON.stringify(result);
        //console.log(JSONResult);
        db.close();
    });

});

该文件已写入,但内容为“未定义”.但是将结果打印到控制台可以正常工作.

解决方法:

您的代码未检查聚合回调上的错误.

您可能会收到Mongo错误,并且在这种情况下结果未定义…

我可以怀疑的另一件事是你得到了多个回调 – 每个回调都会创建一个新文件,删除内容.

尝试使用fs.appendFile而不是fs.writeFile,看看你是否得到了预期的数据(加上不需要的未定义数据)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐