Expressを使用している場合は、コントローラーからメッセージを送信しないでください 。主な目的がクライアントに応答を送信することであるミドルウェアを作成します。これにより、構成の形式を設定できるようになります。 クライアントへの応答。
たとえば、私は次のような応答ミドルウェアを作成しました:-
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();
};
上記のコードは、このような形式を生成します。
{
"success": true,
"status": 200,
"body": {
"name": "rahul"
}
}
リクエストアップリフターを使用できます エクスプレスのプロパティ。以前のミドルウェアからresponseObjectとresponseStatusを追加できます。
同様に、別のミドルウェアでもエラーが発生する可能性があります。
あなたはあなたのルートでこれによって呼び出すことができます:-
const responseSender = require('./../middleware/responseSender');
/* your rest middleware. and put responseSender middleware to the last.*/
router.get('/',/* Your middlewares */, responseSender);
次の方法で呼び出すことができます:-
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);
}