目前我正在使用express.js和
制作api我想发送这样的常见响应格式:
res.send({status : 'suceess' , msg : '' , data : [] });
从所有控制器(处理我的路线的功能)
我尝试过:
someController.js 中的
someFuntion(req,res,next)
{
// these two lines will be in each controller , that I don't want
// want it to be automated , and minimal as much as possible
res.body({status : 'suceess' , msg : '' , data : [] });
next();
}
in middleware.js 强文
functions responseHandler(req,res)
{
// perform some operation with req.body
res.send(req.body);
}
server.js 中的
app.use('/',someFuntion);
app.use(responseHandler);
我只是不想在所有控制器中重复相同的json格式 还有更好的办法吗?
答案 0 :(得分:1)
为什么不使用带res的文件和要发送的输入数据。 假设您创建了一个文件
responseHandler.js
module.exports = function (res , data){
res.send({status:data.status,msg:data.msg,data:data.data});
};
controller.js
var response = require("responseHandler");
someFuntion(req,res,next)
{
// these two lines will be in each controller , that I don't want
// want it to be automated , and minimal as much as possible
// res.body({status : 'suceess' , msg : '' , data : [] });
data.status = 'sucess';
data.msg='';
data.data=[];
response(res,data)
next();
}
您可以使用此方法并可以更好地优化它。我用过这种方法。您可以在responsehandler文件中使用两个函数,一个用于出错,另一个用于当前数据。