问题描述
我使用 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() 时,它也会返回一个 promise apply a then call when you return response.json()