sql >> Database >  >> NoSQL >> MongoDB

juiste manier om het json-formaat te retourneren met behulp van node of express

Als je express gebruikt, stuur het bericht dan niet vanaf de controller . Maak een middleware waarvan het hoofddoel is om het antwoord naar de klant te sturen. Dit geeft je de mogelijkheid om het formaat van consist . in te stellen reactie op de klant.

Ik heb de respons-middleware bijvoorbeeld als volgt gemaakt:-

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

Bovenstaande code genereert het formaat als volgt.

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

U kunt uplifter aanvragen . gebruiken eigendom van uitdrukkelijk. U kunt responseObject en responseStatus van eerdere middleware toevoegen.

Fouten kunnen ook in aparte middleware worden gemaakt.

U kunt hiermee in uw routes bellen:-

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

Je kunt het oproepen door:-

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. Hoe krijg ik gekleurde query-uitvoer en shell in MongoDB?

  2. hoe de aggregatiefunctie in meteoor te gebruiken

  3. Is er een manier om python-objecten rechtstreeks in mongoDB op te slaan zonder ze te serialiseren?

  4. ServiceStack:pijplijn herstellen bij het handmatig aanroepen van een service?