node.js

koa-json-error

在写接口时,返回json格式且易读的错误提示是有必要的,koa-json-error中间件帮我们做到了。

412错误 先决条件出错

// code 
ctx.throw(412, '先决条件失败:id大于数据长度')
复制代码

返回错误信息

{
    "message":"先决条件失败:id大于数据长度",
    "name":"PreconditionFailedError",
    "status":412
}

比如我们请求了一个不存在的数据,自动返回412和错误信息。

image 21

可以看到,返回了对栈信息,但很多时候我们并不想告诉别人内部是哪里出错。

这里使用环境变量来配置,如果为生产环境,不返回stack的信息。如果为调试环境则全返回。

app.use(error({
    postFormat: (e,{stack,...rest})=>process.env.NODE_ENV===`production`?rest:{stack,...rest}
}));

在intellij中,可以方便的添加环境变量

image 22

这样获得请求的信息就是安全的了

image 23