MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

bonne façon de retourner le format json en utilisant node ou express

Si vous utilisez express, n'envoyez pas le message du contrôleur . Créez un middleware dont le but principal est d'envoyer la réponse au client. Cela vous donnera le pouvoir de définir le format de composer réponse au client.

Par exemple, j'ai créé le middleware de réponse comme ceci :-

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

Le code ci-dessus générera le format comme celui-ci.

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

Vous pouvez utiliser request uplifter propriété d'express. Vous pouvez ajouter responseObject et responseStatus à partir du middleware précédent.

Des erreurs peuvent également être commises dans un middleware séparé.

Vous pouvez appeler par ceci dans vos itinéraires :-

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

Vous pouvez l'appeler par :-

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