node搭建个人博客promise警告解除
警告
(node:8500) UnhandledPromiseRejectionWarning: undefined (node:8500) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2) (node:8500) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with
报错代码
//数据库中是否已经存在同名分类名称 Category.findOne({ name: name }).then(function (rs) { if (rs) { //数据库中已经存在该分类 res.render('admin/error',{ userInfo: req.userInfo, message: '分类已经存在' }); return Promise.reject(); } else { //数据库中不存在该分类,可以保存 return new Category({ name: name }).save(); } }).then(function (newCategory) { res.render('admin/success',{ userInfo: req.userInfo, message: '分类保存成功', url: '/admin/category' }); })
报错原因:因为Promise的reject没有被处理。
如果不管异常内容,直接丢弃异常,可以这样处理:.catch(()=>{});
修改后代码
//数据库中是否已经存在同名分类名称
Category.findOne({
name: name
}).then(function (rs) {
if (rs) {
//数据库中已经存在该分类
res.render('admin/error',{
userInfo: req.userInfo,
message: '分类已经存在'
});
return Promise.reject();
} else {
//数据库中不存在该分类,可以保存
return new Category({
name: name
}).save();
}
}).then(function (newCategory) {
res.render('admin/success',{
userInfo: req.userInfo,
message: '分类保存成功',
url: '/admin/category'
});
}).catch(()=>{});
venkim.com