У меня возникла проблема с использованием метода @PUT для моего приложения. До сих пор мне удалось создать @GET, @POST и @DELETE. Итак, после некоторых исследований выяснилось, что @PUT представляет собой смесь моих @GET и @POST.Mongoose как обновить информацию о пользователе
Мой @GET (по CUID) методом
export function getUser(req, res) {
// just get the user information
User.findOne({ cuid: req.params.cuid }).exec((err, user) => {
if (err) {
return res.status(500).send(err);
}
return res.json({ user });
});
}
Мой метод @POST
export function addUser(req, res) {
// Check for empty fields
if (!req.body.user.firstName || !req.body.user.lastName ||
!req.body.user.email || !req.body.user.password ||
!req.body.user.studentId) {
return res.status(403).end();
}
const newUser = new User(req.body.user);
// Let's sanitize inputs
newUser.firstName = sanitizeHtml(newUser.firstName);
newUser.lastName = sanitizeHtml(newUser.lastName);
newUser.studentId = sanitizeHtml(newUser.studentId);
newUser.email = sanitizeHtml(newUser.email);
newUser.password = sha512(newUser.password).toString('hex');
newUser.cuid = cuid();
newUser.save((err, saved) => {
if (err) {
return res.status(500).send(err);
}
return res.json({ user: saved });
});
}
req.body.user
будет таким же в методе @PUT как в функции AddUser на @POST. Другими словами, req.body.user
будет что-то вроде { firstname: 'assa', lastName: 'nen', email: '[email protected]', password: 'ddee', student: 112 }
Мой вопрос является как бы вы изменить конкретного пользователя (от CUID) информацию и сохранить его в БД? Другими словами, как бы вы написать метод @PUT
Важно отметить, что этот подход не будет выполнять проверку модели в схеме мангуста, если вы также не передадите параметр runValidators: true. – Paul