Статус 500, при PUT

262
20 января 2018, 02:33

Здравствуйте, столкнулся с проблемой. Т.к mongoose не имеет метода patch, решил попробовать сделать самостоятельно.

Когда я формирую объект foundUser, с помощью underscore _().pick(), с последующим добавление поля с хэшэм пароля в ответе получаю 500, хоть убей.

Когда же формирую при помощи добавления каждого параметра (Закомментированный код), у меня все хорошо апдейтится.

Суть в том, что я не хочу изменять конкретное поле и апдейтить юзера в зависимости от пришедших параметров, я хочу обновлять его целиком, полностью перезаписывая все поля.

В чем может быть причина такой реакции на pick или я что-то неправильно делаю?

// Patch
users.put('/:_id',
    (req, res, next) => {
        let _id = req.params._id;
        let params = req.body;
        User.findOne({_id: _id})
            .then(foundUser => {
                foundUser = _(params).pick('nickName', 'email', 'firstName', 'middleName', 'lastName');
                if (_(params).has('password'))
                    foundUser.password = passHelpers.makePassword(params.password);
                // if (_(params).has('nickName'))
                //  foundUser.nickName = params.nickName;
                // if (_(params).has('email'))
                //  foundUser.email = params.email;
                // if (_(params).has('password'))
                //  foundUser.password = passHelpers.makePassword(params.password);
                // if (_(params).has('firstName'))
                //  foundUser.firstName = params.firstName;
                // if (_(params).has('middleName'))
                //  foundUser.middleName = params.middleName;
                // if (_(params).has('lastname'))
                //  foundUser.lastName = params.lastName;
                // if (_(params).has('phone'))
                //  foundUser.phone = params.phone;
                console.log(foundUser); // equal params obj.
                console.log(typeof foundUser); // object
                foundUser.save()
                    .then(updatedUser => {
                        res.status(200).send();
                        res.json(updatedUser);
                        next();
                    })
                    .catch(err => {
                        res.status(500).send(err);
                    });
            })
            .catch(err => {
                res.status(500).send(err);
            });
    }
);
READ ALSO
Добавление LatLng в Массив

Добавление LatLng в Массив

Подскажите в чем о

248
Найти второй пробел

Найти второй пробел

Подскажите, как найти второй пробел в строке?

212
Как обнаружить в чем ошибка загрузки данных с сервера (React/Redux/thunk)?

Как обнаружить в чем ошибка загрузки данных с сервера (React/Redux/thunk)?

Прохожу курс по реакту, дошел до 7/9 урокаВсе до этого было более менее нормально

230
Заполнить SVG-карту “шумом”

Заполнить SVG-карту “шумом”

Нужно сверстать вот такую карту c эффектом заполнения "шумом":

277