使用Axios的PUT方法

时间:2018-05-30 01:33:23

标签: javascript axios

我尝试通过添加一些新字段来更新我的用户,例如firstNamelastName。在服务器控制台中,我获得了200状态,但没有添加到对象中。知道我在这做错了什么吗?

这是来自我的userAction.js

export function updateUserData(firstName, lastName) {
  return function (dispatch, getState) {
    const state = getState();
    const { user_id, token } = state.auth;
    return axios.put(USER_DATA(user_id), { firstName, lastName }, {
      headers: { authorization: token }
    }).then((response) => {
      dispatch(updatedUserData(response.data));
      console.log(response.data)
    }).catch((err) => {
      dispatch(console.log("Couldn't update user data."));
    });
  };
}

这来自后端的authenticationController.js文件

exports.update = function (req, res) {
  User.findByIdAndUpdate(req.user._id, {
    $set: {
      email: req.body.email,
      password: req.body.password,
      userData: [{
        role: req.body.role,
        firstName: req.body.firstName,
        lastName: req.body.lastName,
        phone: req.body.phone,
        cscs: req.body.cscs,
        address: [{
          number: req.body.number,
          street: req.body.street,
          city: req.body.city,
          postcode: req.body.postcode
        }],
      }],
    }
  }, { upsert: true }, function (err, user) {
    if (err) {
      res.json(err);
    } else {
      res.json(user);
    }
  })
}

我的router.js

router.route('/users/:user_id/data')
  .get(requireAuth, AuthenticationController.index)
  .put(requireAuth, AuthenticationController.update);

这是更新后的回复

{
    "_id" : ObjectId("5b0df225287cc77612ed89a5"),
    "email" : "user@user.com",
    "password" : "$2HbyP4.ts9O/zrjV5Pcd/Z28bhOb8oGas9wEG",
    "userData" : [ 
        {
            "firstName" : "First Name",
            "lastName" : "Last Name",
            "_id" : ObjectId("5b0df225287cc77612ed89a6"),
            "address" : [ 
                {
                    "_id" : ObjectId("5b0df225287cc77612ed89a7")
                }
            ]
        }
    ],
    "__v" : 0
}

0 个答案:

没有答案