使用MongoDB和Nodejs传递两个查询

问题描述 投票:0回答:1

我有一个小问题,似乎我无法解决。我想将两个查询传递给我的add_people.ejs。问题是我只能传递一个,但我不知道如何传递其他查询。例如:

var People = require("./models/people.js")
var Cities = require("./models/cities.js")

app.get("/", function(req, res){
    People.find({})
    .then(function(data){
        res.render("add_people", {data: data});
        console.log(data);
    })
    .catch(function(err){
        console.log(err);
    })
})
app.listen(3000, function(){
    console.log("Server has started");
})

上面的工作完美,但是,我还想传递一个城市列表的另一个查询,但我不知道如何将该变量传递给我的ejs。

任何帮助,将不胜感激 :)

谢谢!

javascript node.js mongodb
1个回答
1
投票

Promise.all将允许您等待一系列承诺得到解决。已解析的值将是这些承诺的数组,以相同的顺序解析。

var People = require("./models/people.js")
var Cities = require("./models/cities.js")

app.get("/", function(req, res){
    Promise.all([
       People.find({}),
       Cities.find({}),
    ])
    .then(function(results){
        res.render("add_people", {
            data: { 
                people: results[0], 
                cities: results[1],
            }
        });
        console.log(results);
    })
    .catch(function(err){
        console.log(err);
    })
})
© www.soinside.com 2019 - 2024. All rights reserved.