Поскольку mon goose find
является синхронным, ваша консоль будет работать немедленно, прежде чем ответ на запрос будет возвращен, следовательно, она пуста
Вы можете сделать что-то подобное, если хотите придерживаться этого callbacks
подход
var eduvents = {
en: [],
ar: []
};
Eduvent.find({}, function(err, allEduvents) {
allEduvents.forEach(function(eduvent) {
eduvents.en.push(eduvent);
});
EduventAr.find({}, function(err, allEduvents) {
allEduvents.forEach(function(eduvent) {
eduvents.ar.push(eduvent);
});
console.log(eduvents);
});
});
Другой подход заключается в использовании async
await
, поскольку mon goose уже имеет поддержку Promises
Использование Asyn c / AWAIT
async function GetEvents(){
try {
var eduvents = {
en: [],
ar: []
};
var allEvents = await Eduvent.find();
// Here you can simply assign array to the `eduevents.en` if you are not altering anything from `allEduvents`
eduvents.en = allEduvents;
var otherEvents = await EduventAr.find();
eduvents.ar = otherEvents;
console.log(eduvents);
} catch(err) {
console.log("ERROR",err);
}
}