我被要求将我们的hapi服务器从版本11升级到最新版本(21.3.2),这需要相当多的重构。我已经设法让服务器运行,一切似乎都正常工作,但我得到一个错误,当我试图添加一个缓存系统,我不能弄清楚,如果问题是与我的实现或没有。
我的环境:
Node : 16.20.2
@hapi/hapi : 21.3.2
@hapi/catbox : 12.1.1
@hapi/catbox-memory : 6.0.1
下面是我启动服务器时得到的错误:
TypeError: refAnnotations.errors[cacheKey].push is not a function
at exports.ValidationError.exports.error [as annotate] (...path/server/node_modules/@hapi/validate/lib/annotate.js:53:53)
这就是我的服务器是如何初始化的,以及该高速缓存系统是如何实现的:
const Hapi = require('@hapi/hapi');
const catboxMemory = require('@hapi/catbox-memory');
... rest of imports
const init = async () => {
const server = Hapi.Server({
host: 'localhost',
port: config.port,
cache:
{
name: 'memoryCache',
provider: {
constructor: catboxMemory
}
},
});
// Register the plugins
await server.register([
H2o2,
Inert,
Vision,
dataPlugin,
routesPlugin
]);
const start = async () => {
... function that handle views
await server.start();
};
start();
console.log('Server running on %s', server.info.uri);
};
process.on('unhandledRejection', (err) => {
console.log(err);
process.exit(1);
});
init();
我已经尝试了几种不同的语法,但是hapi文档对我没有多大帮助,我看不出我错过了什么。
1条答案
按热度按时间cbjzeqam1#
我偶然在hapi的更新日志中找到了我问题的答案。我不得不调用catBoxMemory的引擎。下面是一个例子: