sql >> Databasteknik >  >> NoSQL >> MongoDB

korrekt sätt att returnera json-format med nod eller express

Om du använder express, skicka inte meddelandet från kontrollen . Gör en mellanprogramvara vars huvudsakliga syfte är att skicka svaret till klienten. Detta ger dig möjlighet att ställa in formatet bestå svar till klienten.

Till exempel har jag gjort svaret mellanprogram så här :-

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

Ovanstående kod kommer att generera formatet så här.

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

Du kan använda request uplifter egendom av uttrycklig. Du kan lägga till responseObject och responseStatus från tidigare mellanprogram.

Fel kan också göras i separat mellanprogram.

Du kan ringa med detta i dina rutter:-

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

Du kan kalla det genom:-

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. MongoError:getaddriinfo ENOTFOUND undefined undefined:27017

  2. Dynamisk xml till mongoDB

  3. MongoDB och MongoJS - kan inte få runCommand att fungera för textfrågor

  4. Är skillnaden mellan två listor igen?