Javascript Adonisjs:如何在lucid模型创建中捕获异常?
我正在用adonisjs构建RESTful api。我在jwt登录模块中面临这个问题。请看下面的代码:Javascript Adonisjs:如何在lucid模型创建中捕获异常?,javascript,node.js,adonis.js,Javascript,Node.js,Adonis.js,我正在用adonisjs构建RESTful api。我在jwt登录模块中面临这个问题。请看下面的代码: async login({request, auth, response}) { let {email, password} = request.all() try { if (await auth.attempt(email, password)) { let user = await User.findBy('email', email)
async login({request, auth, response}) {
let {email, password} = request.all()
try {
if (await auth.attempt(email, password)) {
let user = await User.findBy('email', email)
let token = await auth.generate(user)
user.password = undefined
Object.assign(user, token)
//------------------------------------------
const assignedToken = await Token.create({
user_id: user.id,
token,
})
// -------- i'd like to catch exception here...
return response.json({
success: true,
user
})
}
} catch(e) {
return response.json({
success: false,
message: 'login_failed'
})
}
}
我希望在将jwt令牌持久化到数据库时捕获可能的异常。我是阿多尼斯的新手。我查看了他们的单据,但找不到确切的退货类型。他们会抛出异常吗?还是只返回null/false?我不知道。有吗
他们会抛出异常吗
对
如果在创建过程中出现问题,将出现异常。您可以在try/catch内部创建新的try/catch。比如:
异步登录({request,auth,response}){
...
试一试{
...
try{//新建try/catch
const assignedToken=wait Token.create({
user\u id:user.id,
代币
})
}捕获(错误){
//你的例外
返回。。。
}
return response.json({
成功:没错,
用户
})
}捕获(e){
...
}
}
这是最简单的解决办法。我会这样做,因为可能会有不同类型的错误
他们会抛出异常吗
对
如果在创建过程中出现问题,将出现异常。您可以在try/catch内部创建新的try/catch。比如:
异步登录({request,auth,response}){
...
试一试{
...
try{//新建try/catch
const assignedToken=wait Token.create({
user\u id:user.id,
代币
})
}捕获(错误){
//你的例外
返回。。。
}
return response.json({
成功:没错,
用户
})
}捕获(e){
...
}
}
这是最简单的解决办法。我会这样做,因为可能会有不同类型的错误。你说得对。顺便问一下,你认为坚持jwt令牌是个好主意吗?尤其是当我自己做的时候?他们是否有任何“官方”方法以正确的方式执行此操作?通常令牌(不是刷新令牌)不会保存在db中。我认为保存代币没有任何意义。因为原理是能够使用它们,而无需将它们存储在数据库中。除了存储在db中的刷新令牌,在无状态RESTAPI中,node.js如何记住jwt令牌?在记忆中?我最近从拉维尔移居到阿多尼斯。所以我可能没有nodejs的常识。刷新令牌:你是对的。顺便问一下,你认为坚持jwt令牌是个好主意吗?尤其是当我自己做的时候?他们是否有任何“官方”方法以正确的方式执行此操作?通常令牌(不是刷新令牌)不会保存在db中。我认为保存代币没有任何意义。因为原理是能够使用它们,而无需将它们存储在数据库中。除了存储在db中的刷新令牌,在无状态RESTAPI中,node.js如何记住jwt令牌?在记忆中?我最近从拉维尔移居到阿多尼斯。所以我可能对nodejs没有常识。刷新令牌: