Я пытаюсь обновить своего пользователя, добавив в него несколько новых полей, например firstName
и lastName
.В консоли сервера я получаю 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
}