笑丶日葵 2023-02-18 16:40 采纳率: 41.9%
浏览 281
已结题

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

node使用express框架怎么统一处理code、msg等返回值?
处理成
{
code∶
msg:1
data:{}
}
前提是之前的接口已经写好了的,想复写进去,怎么搞?

  • 写回答

2条回答 默认 最新

  • CodeBytes 2023-02-18 16:48
    关注

    该回答引用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
      }
    }
    
    

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

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月23日
  • 创建了问题 2月18日