javascript - 无法从 nodejs 服务器获取 res.json() 值
问题描述
我使用 react.js 作为前端,使用 nodejs 作为后端。我的客户端代码是
export const updatePaymentDetails = (userId, token, paymentDetails) => {
return fetch(`${API}/user/${userId}`, {
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
Authorization: `Bearer ${token}`
},
body: JSON.stringify(paymentDetails)
})
.then(response => {
console.log(response);
return response.json();
})
.catch(err => console.log(err));
};
我的服务器端代码是
exports.updateUser = (req, res) => {
User.findByIdAndUpdate(
{_id: req.profile._id},
{$set: req.body},
{new: true, useFindAndModify: false},
(err, user) => {
if(err) {
return res.status(400).json({
error: "You are not authorized to update this user"
});
}
user.salt = undefined;
user.encry_password = undefined;
user.createdAt = undefined;
user.updatedAt = undefined;
console.log(user);
return res.json(user);
}
);
};
在服务器端代码中,您可以看到我正在返回 res.json。但在客户端,我没有得到从服务器返回的值。
请问,谁能帮帮我?
解决方案
您需要再添加一个 then()。当您调用 response.json() 时,它还会返回一个承诺,当您返回 response.json() 时应用 then 调用
推荐阅读
- ngrx - NgRx 如何从另一个模块启动功能模块
- amazon-web-services - OpenVPN 客户端到 SSH 到 EC2 私有实例
- angular - 仅当输入可见时才激活角度验证器
- nginx - Nginx 用 proxy_pass 重写
- reactjs - React 三元运算符防止使用样式化组件重复代码?
- python - 从数组中获取日期范围
- java - 无法通过 java/selenium 的文本文件获取多个用户名和密码
- cassandra - 在哪个列上创建布隆过滤器 - cassandra
- python - Python Selenium 点击打开 Chrome 打印对话框挂起
- xcode - 如何让 Xcode Archive 使用正确的配置信息?