我正在尝试使用节点/猫鼬运行多个mongodb查询。我有非常相似的代码在同一个文件中工作,但不在同一个路由中。区别在于查询(相同的格式只是不同的搜索参数)和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');
});