sql >> Database teknologi >  >> NoSQL >> MongoDB

korrekt måde at returnere json-format ved hjælp af node eller express

Hvis du bruger express, skal du ikke sende beskeden fra controlleren . Lav en middleware, hvis hovedformål er at sende svaret til klienten. Dette vil give dig mulighed for at indstille formatet bestå svar til klienten.

For eksempel har jeg lavet respons-middleware sådan her :-

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

Ovenstående kode vil generere formatet som dette.

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

Du kan bruge request uplifter udtrykkelig ejendom. Du kan tilføje responseObject og responseStatus fra tidligere middleware.

Fejl kan ligeledes laves i separat middleware.

Du kan ringe på dette i dine ruter:-

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

Du kan kalde det ved:-

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. Sådan skriver du fagforeningsforespørgsler i mongoDB

  2. Python Reddis Queue ValueError:Funktioner fra __main__-modulet kan ikke behandles af arbejdere

  3. Hvordan udfører jeg en forespørgsel i Mongoose?

  4. Node.js multi-server klynge:hvordan man deler objekt i flere node klynge