【发布时间】: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