0
私のアプリケーションで@PUTメソッドを作成する際に問題があります。これまでのところ、私は@GET、@POST、@DELETEを作りました。それで、いくつかの研究をした後、@PUTは私の@GETと@POSTが混在していることが分かります。マングースユーザー情報を更新する方法
マイ@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方法で同じになります@POSTに。言い換えれば、req.body.user
は{ firstname: 'assa', lastName: 'nen', email: '[email protected]', password: 'ddee', student: 112 }
私の質問は、あなたが情報(CUIDで)特定のユーザーを変更し、それはDBに保存する方法をであるようなものでしょうか?言い換えれば、どのように@PUT方法
このアプローチでは、runValidators:trueオプションも渡さない限り、mongooseスキーマのモデル検証は実行されません。 – Paul