使用koa-bunyan-logger与另一个文件中的路由

我正在尝试使用koajs/bunyan-logger软件包从Koa应用获取日志。但是由于将每个路由都分离到了自己的文件中。 我得到了:

  TypeError: Cannot read property 'info' of undefined
  at router.get (F:\Projects\DocuEngine\src\server\routes\index.js:10:13)
  at dispatch (F:\Projects\DocuEngine\node_modules\koa-router\node_modules\koa-compose\index.js:44:32)
  at next (F:\Projects\DocuEngine\node_modules\koa-router\node_modules\koa-compose\index.js:45:18)
  at F:\Projects\DocuEngine\node_modules\koa-router\lib\router.js:346:16
  at dispatch (F:\Projects\DocuEngine\node_modules\koa-router\node_modules\koa-compose\index.js:44:32)
  at F:\Projects\DocuEngine\node_modules\koa-router\node_modules\koa-compose\index.js:36:12
  at dispatch (F:\Projects\DocuEngine\node_modules\koa-router\lib\router.js:351:31)
  at dispatch (F:\Projects\DocuEngine\node_modules\koa-compose\index.js:42:32)
  at F:\Projects\DocuEngine\node_modules\koa-compose\index.js:34:12
  at Application.handleRequest (F:\Projects\DocuEngine\node_modules\koa\lib\application.js:166:12)

我的app.js文件-

const config = require('./config/config');
const Koa = require('koa');
const koaBunyanLogger = require('koa-bunyan-logger');
const bunyan = require('bunyan');

const indexRoute = require('./server/routes/index');

const app = new Koa();


app.use(indexRoute.routes())
    .use(indexRoute.allowedMethods())
    .use(koaBunyanLogger())
    .use(koaBunyanLogger.requestIdContext())
    .use(koaBunyanLogger.requestLogger());

const server = app.listen(config.port).on('error',(err) => {
    console.error(err);
});
module.exports = server;

我的index.js文件-

const Router = require('koa-router');
const router = new Router();

router.get('/',async (ctx) => {
    ctx.body = {
        data: 'Sending some JSON',};
    ctx.log.info('Got a request from %s for %s',ctx.request.ip,ctx.path);
});

module.exports = router;

不进行记录就可以正常工作。如果我将路线放在app.js文件中,则可以很好地记录日志。

eileencxy227 回答:使用koa-bunyan-logger与另一个文件中的路由

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2880965.html

大家都在问