node使用express框架怎么统一处理code、msg等返回值?

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
  }
}

这种方式可以使接口返回值的格式更加规范,也可以减少代码的冗余。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^