未定義の値をチェックする適切な方法は何ですか?私がしたいのは、空でないフィールドを更新するPUTメソッドを持つことです。たとえば、req.body.name = 'John'
とreq.body.job
を送信した場合は、名前の変更のみを要求します。
いくつかのコード:req.body.job
が空の場合、私は手動で確認することができ、それが設定されていれば、それは価値のユーザーに価値だ今
CastError: Cast to number failed for value "undefined" at path "job"
:もちろん、この意志はエラーをスロー
router.put('/:id', (req, res) => {
const query = {_id: req.params.id};
const update = {
$set: {
name: req.body.name,
job: req.body.job
}
};
User.findOneAndUpdate(query, update,
(err, userUpdated) => {
if (err) {
console.log('Error while updating');
console.log(err);
} else {
res.send(userUpdated);
}
});
});
以前は持っていましたが、それはハックのようで、エレガントではなく、各ルートごとにたくさん書いています。
私はdocsを確認しましたが、そこに提供されているオプションはありません。 express validatorのようなものも出てきましたが、値が空の場合はreturn
になるでしょう。もう1つの選択肢は、単にフロントエンド部分から値を送信することです。
私はバックエンド開発には新しく、「正しい方法」をやっているかどうかは分かりません。だから、どうすればいいのですか(また、私のコードが奇妙に見える場合でも、私を案内することができます:))、ありがとう!