我试图使用本机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] 举报,一经查实,本站将立刻删除。