使用Node.js在单个请求中发送多个数据

时间:2018-04-06 17:18:21

标签: html node.js mongodb express

我想使用以下代码在单个GET请求中将来自不同MongoDB表的多个数据发送到同一个目标网页,其中:

  • asbs是MongoDB数据库表名称
  • landing ejs 文件名(landing.ejs

代码:

app.get("/", function(req, res) {
  as.find({}, function(err, founda) {
    if (err) {
      console.log(err);
    } else {
      res.render("landing", {
        a: founda
      });
    }
  });

  bs.find({}, function(err, foundb) {
    if (err) {
      console.log(err);
    } else {
      res.render("landing", {
        b: foundb
      });
    }
  });
});

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

XFD

基本上,您需要在拨打app.get("/",function(req,res){ as.find({},function(err,founda){ if(err){ console.log(err); }else{ bs.find({}, function(err2, foundb) { if (err2) { console.log(err2); } else { res.render("landing",{a:founda, b: foundb}); } }); } }); }); 后拨打b。如果您希望同时执行此操作,则需要查看a

上面的代码也需要更好的错误处理......

答案 1 :(得分:0)

如果您的输出依赖于2个异步操作,则需要将它们嵌套在回调或承诺或异步等待中

promises

//异步并行示例

app.get("/",function(req,res){
    as.find({},function(err,founda){
        if(err){
            console.log(err);
        }else{
          bs.find({},function(err,foundb){
            if(err){
               console.log(err);
            }else{
               res.render("landing",{a:founda,b:foundb});
            }
          });
        }
     });
  });