node使用express框架怎么统一处理code、msg等返回值?
处理成
{
code∶
msg:1
data:{}
}
前提是之前的接口已经写好了的,想复写进去,怎么搞?
该回答引用ChatGPT
在 Express 中可以使用中间件来实现统一处理 code、msg 等返回值的需求。可以编写一个中间件函数,在每个路由响应的时候都调用该函数进行处理。以下是实现该中间件的示例代码:
// 统一返回值中间件
const resultMiddleware = (req, res, next) => {
// 重写 res.json 方法
res.json = (data, code = 0, msg = 'success') => {
res.send({
code: code,
msg: msg,
data: data
})
}
next()
}
// 在 app.js 中引入该中间件
app.use(resultMiddleware)
在这个中间件函数中,我们重写了 res.json 方法,将传入的参数重新组织成统一的格式返回。在每个路由的响应中,只需要调用 res.json 函数即可,参数分别为 data、code 和 msg。
举个例子,如果我们要返回一段数据 { name: 'Tom', age: 18 },可以这样写:
app.get('/api/user', (req, res) => {
const data = { name: 'Tom', age: 18 }
res.json(data)
})
这样返回的数据格式就是统一的,如下:
{
"code": 0,
"msg": "success",
"data": {
"name": "Tom",
"age": 18
}
}
这种方式可以使接口返回值的格式更加规范,也可以减少代码的冗余。
不知道你这个问题是否已经解决, 如果还没有解决的话: