jsonServer添加了中间件,发起请求报错res.success is not a function

来源:4-13 -使用 axios 请求库,设置请求拦截-02

荳芽妹

2023-05-22

jsonServer添加了中间件,test.js文件由res.json(testData)改成res.success(testData),发起请求的时候报错TypeError: res.success is not a function

app.js

server.use((req, res, next) => {
    const json = res.json.bind(res)
    res.success = (data) => {
        return json({
            code: 0,
            msg: '请求成功',
            data
        })
    }
    res.fail = (msg, code = -1, data) => {
        return json({
            code,
            msg,
            data
        })
    }
    next()
})

test.js

module.exports = (req, res, next) => {
    const testData = test()
    testData.desc = '我是自定义测试数据'
    res.success(testData)
}

接口报500
TypeError: res.success is not a function
at module.exports (D:\vue3\ele-h5-server\src\controller\test.js:6:10)
at Layer.handle [as handle_request] (D:\vue3\ele-h5-server\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (D:\vue3\ele-h5-server\node_modules\express\lib\router\index.js:328:13)
at D:\vue3\ele-h5-server\node_modules\express\lib\router\index.js:286:9
at Function.process_params (D:\vue3\ele-h5-server\node_modules\express\lib\router\index.js:346:12)
at next (D:\vue3\ele-h5-server\node_modules\express\lib\router\index.js:280:10)
at D:\vue3\ele-h5-server\node_modules\json-server\lib\server\defaults.js:61:5
at Layer.handle [as handle_request] (D:\vue3\ele-h5-server\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (D:\vue3\ele-h5-server\node_modules\express\lib\router\index.js:328:13)
at D:\vue3\ele-h5-server\node_modules\express\lib\router\index.js:286:9

写回答

1回答

one_pieces

2023-05-23

同学你好,可以看下中间件加的位置,确保在处理路由之前

0
0

Vue3+Pinia+Vite+TS 还原高性能外卖APP项目

Vue3+Pinia+Vite+TS 还原高性能外卖APP项目

392 学习 · 251 问题

查看课程