hapijs - Не удается запустить сервер до завершения регистрации плагинов - PullRequest
0 голосов
/ 25 июня 2018

Итак, у меня есть 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,
            },
          },
        }
    ];

Куда я иду не так? Я даже пытался добавить это только при включенном режиме разработки, но он выдал ту же ошибку.

1 Ответ

0 голосов
/ 26 июня 2018

Используете ли вы await при регистрации плагинов?Как указано в документации , часть регистрации плагина должна выглядеть следующим образом:

const init = async () => {

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

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

init();
...