i5ting / koa-generator

Koa' application generator for 1.x and 2.x( Express-style and support all middlewares include async/await )
https://github.com/17koa/koa-generator
MIT License
972 stars 110 forks source link

关于koa-generator的错误处理 #10

Closed jimliang closed 8 years ago

jimliang commented 8 years ago

在routes/index.js这样写:

router.get('/', async (ctx, next)=> {
    throw new Error('aaa')
    ctx.render('index', {
        title: 'fff'
    });
})

请求时会被挂起,没有任何输出,浏览器也一直在请求状态。

在middleware里添加了这个才捕捉到异常信息

app.use(async (ctx,next) =>{
    try {
        await next()
    }catch (e) {
        console.log('err',e)
    }
});

那么问题来了,koa-generator生成的项目怎么处理未捕捉的异常?

jimliang commented 8 years ago

找到了,原来是:

app.on('error', (err, ctx)=> {
    log.error('server error', err, ctx);
});

因为log没有输出到控制台,所以没有发现。而且因为log未定义才导致请求被挂起了……