[英]Adonis.js api Sign Up route is not working
我有一个仅Adonis.js api的应用,我的身份验证路由不起作用。
这是我的注册路线:
const Route = use('Route')
...
Route.post('/signup', 'UserController.signup')
这是UserController中的操作:
'use strict'
const User = use('App/Models/User')
const Hash = use('Hash')
const Writ = use('App/Models/Writ')
class UserController {
async signup ({ request, auth, response }) {
// get user data from signup form
const userData = request.only(['name', 'username', 'email', 'password'])
console.log(userData);
try {
// save user to database
const user = await User.create(userData)
console.log(user);
// generate JWT token for user
const token = await auth.generate(user)
return response.json({
status: 'success',
data: token
})
} catch (error) {
return response.status(400).json({
status: 'error',
message: 'There was a problem creating the user, please try again later.'
})
}
}
...
module.exports = UserController
控制台使用Postman打印请求,但返回:
{“ status”:“错误”,“ message”:“创建用户时出现问题,请稍后重试。” }
我希望您正确配置本文档中提到的所有配置。
如果您的配置正确,那么此问题就是用户迁移问题。
因为用户迁移不包含名称字段,所以请先检查而不将名称发送到邮递员中,并且不要在这样的控制器中获取名称
'use strict' const User = use('App/Models/User') const Hash = use('Hash') const Writ = use('App/Models/Writ') class UserController { async signup ({ request, auth, response }) { const userData =request.only(['username','email','password']) console.log(userData); try { const user = await User.create(userData) console.log(user); // generate JWT token for user const token = await auth.generate(user) return response.json({ status: 'success', data: token }) } catch (error) { return response.status(400).json({ status: 'error', message: error }) } } ... module.exports = UserController
然后尝试生成令牌就可以了
试试吧:
'use strict'
const User = use('App/Models/User')
const Hash = use('Hash')
class UserController {
async signup ({ request, auth, response }) {
// get user data from signup form
const userData = request.only(['username', 'email', 'password'])
// ! Only existing fields in the database
console.log(userData);
try {
// save user to databas
const user = new User()
user.fill(userData)
await user.save()
// generate JWT token for user
const token = await auth.generate(user)
return response.json({
status: 'success',
data: token
})
} catch (error) {
return response.status(400).json({
status: 'error',
message: error
})
}
}
}
module.exports = UserController
创建用户以更好地定位错误时,添加try / catch会很有趣。
如果不起作用,请检查配置文件。
祝你今天愉快!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.