使用MondoDB和Nodejs传递两个查询

时间:2018-03-06 01:02:53

标签: javascript node.js mongodb

我有一个小问题,似乎我无法解决。我想将两个查询传递给我的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。

任何帮助将不胜感激:)

谢谢!

1 个答案:

答案 0 :(得分: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);
    })
})