Hapijs开始使用良好的控制台错误记者必须指定要过滤的事件

Whi*_*her 5 node.js hapijs

我刚刚开始学习Hapijs以及本示例的入门教程:

var Hapi = require('hapi');
var Good = require('good');

var server = new Hapi.Server();
server.connection({ port: 3000 });

server.route({
    method: 'GET',
    path: '/',
    handler: function (request, reply) {
        reply('Hello, world!');
    }
});

server.route({
    method: 'GET',
    path: '/{name}',
    handler: function (request, reply) {
        reply('Hello, ' + encodeURIComponent(request.params.name) + '!');
    }
});

server.register({
    register: Good,
    options: {
        reporters: [{
            reporter: require('good-console'),
            args:[{ log: '*', response: '*' }]
        }]
    }
}, function (err) {
    if (err) {
        throw err; // something bad happened loading the plugin
    }

    server.start(function () {
        server.log('info', 'Server running at: ' + server.info.uri);
    });
});
Run Code Online (Sandbox Code Playgroud)

我跑的时候

node server
Run Code Online (Sandbox Code Playgroud)

我有

/home/user/hapi/node_modules/good/node_modules/hoek/lib/index.js:683
    throw new Error(msgs.join(' ') || 'Unknown error');
          ^
Error: reporter must specify events to filter on
Run Code Online (Sandbox Code Playgroud)

你能帮我吗 ?

Ger*_*osi 10

文档已过时.良好的6.0.0 有一些重大变化.模块good-console有一个新版本,但它尚未在npm上发布.您可以通过在package.json中指定GitHub存储库来使用master分支:

"good-console": "hapijs/good-console"
Run Code Online (Sandbox Code Playgroud)

您还需要将配置更改为:

options: {
    reporters: [{
        reporter: require('good-console'),
        events: {
            response: '*',
            log: '*'
        }
    }]
}
Run Code Online (Sandbox Code Playgroud)

编辑:好的控制台版本5.0.0已经发布.文档也更新了.

  • @blackstar你使用的是好的游戏机版本5.0.0吗?只有该版本与良好的6.0.0兼容. (2认同)