Я пытаюсь запустить функцию put для обновления пользователя в моем mongoDB, но я получаю ошибку внутренней внутренней службы 500. Я использую angular-fullstack генератор500 Внутренняя ошибка сервера: не удается обновить пользователя в mongoose
Я использую этот ресурс в моем контроллере:
update(User) {
User.$update();
}
Вот функции я называю во внутреннем интерфейсе, чтобы попытаться положить данные все, кажется, работает нормально, когда только я называют saveUpdates, похоже, что запуск ошибки 500 .:
function handleError(res, statusCode) {
statusCode = statusCode || 500;
return function(err) {
res.status(statusCode).send(err);
};
}
// this seems to be the function giving me the problem.
function saveUpdates(updates) {
return function(entity) {
var updated = _.merge(entity, updates);
return updated.saveAsync()
.spread(updated => {
return updated;
});
};
}
function respondWithResult(res, statusCode) {
statusCode = statusCode || 200;
return function(entity) {
if (entity) {
res.status(statusCode).json(entity);
}
};
}
function handleEntityNotFound(res) {
return function(entity) {
if (!entity) {
res.status(404).end();
return null;
}
return entity;
};
}
export function updateUser(req, res) {
if (req.body._id) {
delete req.body._id;
}
User.findByIdAndUpdate(req.params.id)
.then(handleEntityNotFound(res))
.then(saveUpdates(req.body))
.then(respondWithResult(res))
.catch(handleError(res));
}
Я попытался следующие рекомендации по this странице для углового набитый стека, например, изменение ._merge к ._extend безрезультатно.
О, человек, я пытался выяснить, почему я получил ошибку 500 после слияния, и я полностью упустил исключение из lodash! Это мелочи ... –