hapijs - 在插件完成注册之前无法启动服务器

hapijs - Cannot start server before plugins finished registration

所以我有 Hapi (v17.5.1),当我有我的插件数组时

[
 {
  plugin: good,
  options: {
    reporters: {
      errorReporter: [
        {
          module: 'good-squeeze',
          name: 'Squeeze',
          args: [{ error: '*' }],
        }, {
          module: 'good-console',
        },
        'stderr',
      ],
      infoReporter: [
        {
          module: 'good-squeeze',
          name: 'Squeeze',
          args: [{ log: '*', response: '*' }],
        }, {
          module: 'good-console',
        },
        'stdout',
      ],
    },
  }
]

让我们把它保存在一个变量goodPlugin中以备下一个例子。

也就是说,只有使用好的插件才能正常工作,但是当我尝试添加 Inert、Vision 或 Hapi-Swagger 时,它会中断并给出错误 Cannot start server before plugins finished registration

一个例子:

const HapiSwagger = require('hapi-swagger');
const Inert = require('inert');
const Vision = require('vision');
const Pack = require('../package');
module.exports = [
    Inert,
    Vision,
    // goodPlugin,
    {
        plugin: HapiSwagger,
        options: {
            info: {
              title: Pack.description,
              version: Pack.version,
            },
          },
        }
    ];

我哪里错了?我什至尝试仅在开发模式打开时添加它,但它给了我同样的错误。

你在注册插件时使用await吗?根据 documentation 的建议,插件注册部分应如下所示:

const init = async () => {

    await server.register({
        plugin: require('hapi-pino')
    });

    await server.start();
    console.log(`Server running at: ${server.info.uri}`);
};

init();