【问题标题】:response is undefined using Axios and Express使用 Axios 和 Express 未定义响应
【发布时间】:2020-09-26 20:30:41
【问题描述】:

我在后端有这个简单的 post 方法:

router.post('/users', async function(request, response) {
  try {
    const userToRegister = request.body;
    const user = await CreateUserService.execute(userToRegister);
  
    return response.json(user);
  } catch (err) {
    console.log(err);
    return response.status(401).json({ message: 'email already registered' });
  }
});

如果用户已经注册,我会在前端尝试捕捉响应,如下所示:

api.post('users', user.userFields)
      .then(response => {
        console.log(response)
      })
      .catch(err => {
        console.log(err);
      })

在这种情况下,响应总是undefined

如果在后端通过 return response.json(err); 就可以正常工作。

我在这里错过了什么?

【问题讨论】:

  • 您是否尝试通过设置断点来查看return response.json(user); 行的user
  • 客户端中的api.post() 是什么?是axios吗?还有,为什么请求的 URL 不是/users
  • @Anatoly在调试return response.json(user)行时,调试指针没有进入try块,直接指向catch块。
  • @jfriend00 是的,是 Axios。我想第一个'/'并不重要就是这种情况。尝试使用api.post('/users') 并没有成功。
  • 您是否在return response.json(user); 之前执行了console.log(user)console.log(JSON.stringify(user)) 以准确查看您拥有的内容并确保您的代码到达那里?

标签: node.js express axios undefined response


【解决方案1】:

别介意,发现错误。

我的失败是在CreateUserServiceuser catch 块中。

【讨论】:

    猜你喜欢
    • 2021-05-26
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多