1.封装api返回格式扩展
当我们对前端的请求返回的格式的时候,经过一个统一的格式返回,会比较省时省力。我们在app的目录下创建extend的目录。然后书写我们的context.js,这样我们的ctx对象就会被我们再次的封装。
// app/extend/context.js
module.exports = {
// 成功提示
apiSuccess(data = '', msg = 'ok', code = 200) {
this.body = { msg, data };
this.status = code;
},
// 失败提示
apiFail(data = '', msg = 'fail', code = 400) {
this.body = { msg, data };
this.status = code;
},
};
这样我们在控制器层,就可以使用ctx.apiSuccess(res);来对我们的返回结果进行一次的整体封装,方便我们项目的使用。
2.全局抛出异常处理
我们对于全局出现的错误进行一层过滤。那我们就会使用到中间件的知识点。这里我们创建中间件的代码,在app下创建middleware目录。然后书写js。代码如下:
// app/middleware/error_handler.js
module.exports = (option, app) => {
return async function errorHandler(ctx, next) {
try {
await next();