我正在尝试使用 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)
答案 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
在其作用域的顶层进行任何操作。