Node.js 在NodeJs中使用findOne()时出现未经处理的PromisejectionWarning

Node.js 在NodeJs中使用findOne()时出现未经处理的PromisejectionWarning,node.js,Node.js,我正在做一个项目,在这个项目中,如果课程id不存在,就必须重定向用户。 代码如下: router.get('/higher/:id',(req,res)=>{ 让tallerId=req.params.id; findOne({u id:tallerId})。然后(更高=>{ 如果(更高){ res.render(“更高”); }否则{ res.redirect('/dashboard'); } }); });您没有定义catch块,因此拒绝(即错误)不会被处理。请尝试下面的代码 route

我正在做一个项目,在这个项目中,如果课程id不存在,就必须重定向用户。 代码如下:

router.get('/higher/:id',(req,res)=>{
让tallerId=req.params.id;
findOne({u id:tallerId})。然后(更高=>{
如果(更高){
res.render(“更高”);
}否则{
res.redirect('/dashboard');
}
});

});您没有定义catch块,因此拒绝(即错误)不会被处理。请尝试下面的代码

router.get('/higher/:id',(req,res)=>{
让tallerId=req.params.id;
findOne({u id:tallerId})。然后(更高=>{
如果(更高){
res.render(“更高”);
}否则{
res.redirect(“/dashboard”)
}
});

}).catch(err=>{console.log(err)})您希望发生或期望发生什么?你是在告诉我们你遇到的问题,但不是你预期的行为。@jamesemanon我在那里更新了它!当您有数据时,是否能够渲染更高?问题是,当未找到更高的数据时,它实际上不会重定向我。由于您将从查询中获得数组,请尝试条件if(higher.length!=0)而不是if(higher)一次