0

所以我试图运行多个查询,同时创建行到 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');
  });
});

在实际写入文件之前,如何等待查询完成并添加行?

4

0 回答 0