sql >> データベース >  >> NoSQL >> MongoDB

エラー[ERR_HTTP_HEADERS_SENT]クライアントに送信された後にヘッダーを設定できません

    エラーが発生したらエラー応答を返す必要があります。そうしないと、エラーが発生した後も関数が実行され、以下のコードが実行され続けます。

      '/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回しか送信できず、関数がエラー後に応答を再度送信すると、クライアントに送信された後に応答ヘッダーを送信できないことが示されます。

    お役に立てれば。幸運:)



    1. ModulusとNode.jsを使用したリアルタイムチャット

    2. Meteorドキュメントのメッセージカウントの例はどのように機能しますか?

    3. MongoDBを使用した間違った距離計算

    4. Mongodbのネストされた配列に要素を挿入します