微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法从 nodejs 服务器获取 res.json() 值

如何解决无法从 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);
        }
    );
};

前端输出

enter image description here

在服务器端代码中,可以看到我返回的是res.json。但是在客户端,我没有得到从服务器返回的值。

请问,有人可以帮我吗?

解决方法

你需要再添加一个 then()。当你调用 response.json() 时,它也会返回一个 promise apply a then call when you return response.json()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。