sql >> Databáze >  >> NoSQL >> MongoDB

správný způsob, jak vrátit formát json pomocí uzlu nebo expresu

Pokud používáte expresní službu, neodesílejte zprávu z kontroléru . Vytvořte middleware, jehož hlavním účelem je odeslat odpověď klientovi. To vám umožní nastavit formát consist odpověď klientovi.

Například jsem vytvořil middleware odpovědí takto :-

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

Výše uvedený kód vygeneruje formát, jako je tento.

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

Můžete použít požadavek na zlepšení vlastnost expres. Můžete přidat responseObject a responseStatus z předchozího middlewaru.

Stejně tak lze chyby dělat v samostatném middlewaru.

Tímto způsobem můžete volat ve svých trasách:-

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

Můžete to zavolat:-

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. Nejjednodušší způsob, jak nainstalovat rozšíření Mongodb PHP v Ubuntu 13.10 (sucy)?

  2. Laravel - Mongodb [ jenssegers/laravel-mongodb ] - Tvůrce schémat

  3. Náhodný záznam z MongoDB

  4. Třída 'MongoClient' nebyla nalezena