Я пытаюсь выполнить несколько запросов mongodb, используя узел / mongoose. У меня очень похожий код, работающий в том же файле, но не по тому же маршруту. Различия заключаются в запросах (одинаковый формат, только разные параметры поиска) и в строке res.render
.
Я провел около часа в поиске и поиске переполнения стека и пока не нашел ничего полезного.
Сообщение об ошибке
TypeError: result.slice is not a function
at results.map.result (/home/ubuntu/workspace/sailhr/server/routes/hr.js:73:58)
at Array.map (native)
at Promise.all.then.results (/home/ubuntu/workspace/sailhr/server/routes/hr.js:73:36)
at process._tickDomainCallback (internal/process/next_tick.js:135:7)
код
let queries = [
User.findById(req.params.id, function(err, foundUser){
if(err){
req.flash('error', 'Could not find the user requested.');
}
}),
User.find({companyID: req.user.companyID, role: "manager" }, function(err, allManagers){
if(err){
req.flash('error', 'Could not find all company managers.');
}
})
];
Promise.all(queries)
.then(results => (results.map(result => (result.slice(1)))))
.then(adaptedResults => res.render('user/profileEdit', {header: 'EDIT USER PROFILE', Employee: adaptedResults[0], managers: adaptedResults[1]}))
.catch(err => {
console.log(err)
req.flash('error', err[0]);
res.redirect('/users');
});