Koa是由Express框架原班人馬打造的全新web框架,與Express風格相似,底層都是沿用同一套Http基礎庫,可是有幾項顯著差異:web
async function onerror(ctx, next) {
try {
await next();
} catch (err) {
ctx.app.emit('error', err);
ctx.body = 'server error';
ctx.status = err.status || 500;
}
}
複製代碼
衆所周知,Koa框架是一個極簡框架擴展性很是強,而Egg在此基礎上作了加強。shell
在Egg框架中,能夠經過定義app/extend/{application,context,request,response}.js
來擴展Koa框架中四個框架的原型,如在app/extend/context.js
中定義以下代碼:app
module.exports = {
get isXXX() {
return xxx;
}
}
複製代碼
在controller.js中,能夠利用剛纔的定義:框架
exports.handler = ctx => {
ctx.body = ctx.isXXX ? 'is xxx' : 'is not xxx';
};
複製代碼
Egg提供了更增強大的插件機制,一個插件能夠包含:異步