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();
所以我有 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();