当我尝试创建新用户时,意外的令牌用户=等待User.create(user)

时间:2019-10-24 18:29:59

标签: node.js adonis.js

我正在尝试使用 node.js / adonis

创建一个新用户

我创建了这两个功能:

const User = use("App/Models/User")

async store ({ request, auth }){

    let user = new User()
    user = request.all()

    this.userLogged(auth).then(res => { 
        user.user_id = res.id
        console.log(user)
        user = await User.create(user)
        const token = await auth.generate(user)
        Object.assign(user, token)
        return user
    })
}

async userLogged(auth) {
    try {
        return await auth.getUser()
    } catch (error) {
        console.log(error)
    }
}

函数“ userLogged()”返回用户,我在授权标头中收到令牌。

所以我尝试:

create a new instance of User;
put the request data in this instance;
take the user_id of the authorization header and put in the user.user_id;
create the user with the user_id;
take the token of the registred user;
put in the object user the token;
return the user;

但是我收到了:

  

意外的令牌用户=等待User.create(user)

1 个答案:

答案 0 :(得分:5)

您正在尝试await函数中未包含的某些内容,特别是诺言解析器async中的回调。

.then

另外,根据提供的代码,async store ({ request, auth }){ let user = new User() user = request.all() this.userLogged(auth).then(async res => { user.user_id = res.id console.log(user) user = await User.create(user) const token = await auth.generate(user) Object.assign(user, token) return user }) }不需要异步,因为您无需store在其作用域的顶层进行任何操作。