node.js+koa统一接口返回数据
2020-09-08 本文已影响0人
Poppy11
统一接口成功或失败返回格式
之前写的接口返回数据大都如下形式,包括3个字段:code、data、msg,希望每个api接口都能以如下形式返回数据,利用中间件就非常容易实现
//成功返回
{
"code":200,
"msg":"success",
"data":{
"items":[]
}
}
//失败返回
{
"code":99,
"msg":"参数不完整"
}
function routerResponse(option={}){
return async function(ctx,next){
ctx.success = function (data,msg) {
ctx.type = option.type || 'json'
ctx.body = {
code : option.successCode || 0,
msg : msg,
data : data
}
}
ctx.fail = function (msg,code) {
ctx.type = option.type || 'json'
ctx.body = {
code : code || option.failCode || 99,
msg : msg || option.successMsg || 'fail',
}
console.log(ctx.body)
}
await next()
}
}
在app.js引入这个中间件
const Koa = require('koa')
const app = new Koa()
let routerResponse = require('./middleware/routerResponse')
...
app.use(routerResponse())
...
app.listen(3031)
使用
ctx.fail('用户不存在',-1)
ctx.success(user)