エラーが発生したらエラー応答を返す必要があります。そうしないと、エラーが発生した後も関数が実行され、以下のコードが実行され続けます。
'/add/grade',
[
check('name', 'grade name is require')
.not()
.isEmpty()
],
auth,
admin,
(req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) return res.status(400).send({ errors: errors.array() });
const grade = new Grade(req.body);
grade.save((err, doc) => {
if (err) return res.status(400).send({ success: false, err });
return res.status(200).send({
success: true,
grade: doc,
msg: 'Grade add successfully'
});
});
}
);
エラーが発生した場合、または検証が失敗した場合、APIは応答を送信しますが返されないため、関数は続行し、その下にある他のすべてのコードを実行します。
HTTPリクエストでは、応答は1回しか送信できず、関数がエラー後に応答を再度送信すると、クライアントに送信された後に応答ヘッダーを送信できないことが示されます。
お役に立てれば。幸運:)