MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

richtiger Weg, um das JSON-Format mit node oder express zurückzugeben

Wenn Sie Express verwenden, senden Sie die Nachricht nicht vom Controller . Erstellen Sie eine Middleware, deren Hauptzweck darin besteht, die Antwort an den Client zu senden. Dadurch können Sie das Format von consist festlegen Antwort an den Client.

Zum Beispiel habe ich die Antwort-Middleware so gemacht:-

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();
};

Der obige Code generiert das Format wie folgt.

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

Sie können den Request Uplifter verwenden Eigentum von Express. Sie können responseObject und responseStatus von früherer Middleware hinzufügen.

Fehler können ebenfalls in separater Middleware gemacht werden.

So können Sie in Ihren Routen anrufen:-

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

Sie können es aufrufen durch:-

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);
}