所以我试图运行多个查询,同时创建行到 excel 表,然后在所有实际写入 excel 文件之后我一直绊倒的问题是我最终在完成之前写入了 excel 文件我的查询和行已创建。这是我的代码:
var writeRows = function(){
// setting up of excel file
Child.find(function(err,children){
children.forEach(function(item, index){
User.findOne({_id: item.get_gaurdian()}, function(err, parent){
console.log(item.firstname);
sheet.addRow({
firstname: item.firstname,
lastname: item.lastname,
birthday: item.birthday,
address: item.address,
parent_name: parent.full_name(),
// more fields...
});
});
});
});
}
然后在我的控制器中我调用:
writeRows().then(function(){
d = new Date().toDateString().split(' ').join('_');
filename = './public/spreadsheets/registration_1'+d+'.xlsx';
workbook.xlsx.writeFile(filename)
.then(function() {
console.log("wrote to a file");
res.send('finished');
});
});
在实际写入文件之前,如何等待查询完成并添加行?