首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Adonis.js api注册路由不起作用

Adonis.js api注册路由不起作用
EN

Stack Overflow用户
提问于 2019-08-22 14:21:28
回答 2查看 851关注 0票数 0

我有一个只有Adonis.js api的应用程序,我的auth路径不工作。

这是我的注册路线:

代码语言:javascript
复制
const Route = use('Route')

...

Route.post('/signup', 'UserController.signup')

下面是UserController中的操作:

代码语言:javascript
复制
'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,控制台打印请求,但返回:

{“状态”:“错误”,“消息”:“创建用户有问题,请稍后再试”}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-23 09:28:57

试一试:

代码语言:javascript
复制
'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会很有趣,以更好地定位错误。

如果不能工作,请检查配置文件。

祝您今天愉快!

票数 0
EN

Stack Overflow用户

发布于 2019-08-24 10:02:37

我希望您在文档中提到了所有的配置。

  • 如果您的配置正确,那么这个问题就是用户迁移问题。
  • 因为用户迁移不包含名称字段,所以首先检查没有将名称发送到postman,而不是在控制器中获得name

“使用严格的”const User =use(‘App/Models/User“) const Hash = use('Hash') const Writ = use('App/Models/Writ')类UserController {异步注册({ request,auth,response }) { const userData =request.only(’用户名‘,'email',’密码‘) console.log(userData);尝试{ const =等待User.create(userData) console.log(用户);// generate令牌用于用户const令牌=等待auth.generate(用户)返回response.json({ status:'success‘),数据: token }} catch (错误){返回response.status(400).json({状态:‘错误’,消息:错误}) }}module.exports = UserController

然后尝试生成令牌--它是工作的

  • 如果您在响应中获得成功,则更改用户迁移。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57611495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档