我想使用以下代码在单个GET请求中将来自不同MongoDB表的多个数据发送到同一个目标网页,其中:
as
和bs
是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
});
}
});
});
我怎样才能做到这一点?
答案 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});
}
});
}
});
});