我根据猫鼬文档使用Model.findOne().exec()
,我的mongodb中有{ username: ycjcl666 }
,当我findOne({ username: 'ycjcl666' })
时,它可以显示数据,但我查询不存在的数据,如{{ 1}},应用程序停滞不前。
使用findOne({ username: 'ycjcl888' })
创建登录/注册申请。
控制器代码:
koa@2 + mongoose@^5.0.18 + mongodb@3.6.3
像这样的服务代码,但是当它不存在时就会卡住,// controller/user.js
class UserController {
async login(ctx) {
const password = await UserService.loginPass(username);
}
}
但不会获得try...catch
信息
console
答案 0 :(得分:0)
您在await
中使用await UserService.loginPass(username);
表示loginPass
必须返回Promise
,我的意思是您不必在{{1}中使用await
功能
loginPass
或
class UserService {
loginPass() {
return User.findOne({ username }).exec();
}
}
class UserController {
async login(ctx) {
const password = await UserService.loginPass(username);
}
}
并确保您没有使用class UserService {
async loginPass() {
return await User.findOne({ username }).exec();
}
}
class UserController {
login(ctx) {
const password = UserService.loginPass(username);
}
}
来调用async/await
(如果明确调用)