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

ノードまたはエクスプレスを使用してjson形式を返す適切な方法

    Expressを使用している場合は、コントローラーからメッセージを送信しないでください 。主な目的がクライアントに応答を送信することであるミドルウェアを作成します。これにより、構成の形式を設定できるようになります。 クライアントへの応答。

    たとえば、私は次のような応答ミドルウェアを作成しました:-

    module.exports = function(req, res, next) {
      const message = {};
      message.body = req.responseObject;
      message.success = true;
      message.status = req.responseStatus || 200;
      res.status(message.status).send(message);
      return next();
    };
    
    

    上記のコードは、このような形式を生成します。

    {
      "success": true,
      "status": 200,
      "body": {
        "name": "rahul"
      }
    }
    

    リクエストアップリフターを使用できます エクスプレスのプロパティ。以前のミドルウェアからresponseObjectとresponseStatusを追加できます。

    同様に、別のミドルウェアでもエラーが発生する可能性があります。

    あなたはあなたのルートでこれによって呼び出すことができます:-

    const responseSender = require('./../middleware/responseSender');
     /* your rest middleware. and put responseSender middleware to the last.*/
    router.get('/',/* Your middlewares */, responseSender);
    

    次の方法で呼び出すことができます:-

    exports.groups_Get_All = (req, res, next) => {
        Group.find()
            .exec()
            .then(docs => {
                const response =
                    docs.map(doc => {
                        return {
                            gname: doc.gname,
                            employee: doc.employeeId,
                            _id: doc._id,
                            createdAt: doc.createdAt
                        };
                    })
    
                req.responseObject = response; // This will suffice
                return next()
            })
            .catch(next);
    }
    



    1. POSTリクエストからのデータストリームをGridFS、express、mongoDB、node.jsに保存する

    2. MongoDBに高精度の10進値を保存する必要があります

    3. API呼び出しで2つのマングーススキーマを更新する

    4. 配列のサブ配列をいくつかの基準でフィルタリングする