Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Adonisjs:如何在lucid模型创建中捕获异常?_Javascript_Node.js_Adonis.js - Fatal编程技术网

Javascript Adonisjs:如何在lucid模型创建中捕获异常?

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)

我正在用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)
        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没有常识。刷新令牌: