提问人:Sylvain Jacot 提问时间:10/10/2023 最后编辑:Sylvain Jacot 更新时间:10/10/2023 访问量:38
使用 @hapi 21.3.2 实现缓存系统时出错
Error on implementing cache system with @hapi 21.3.2
问:
我被要求将我们的快乐服务器从版本 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();
我尝试了几种不同的语法,但快乐的文档对我没有多大帮助,我看不到我错过了什么。
答:
0赞
Sylvain Jacot
10/10/2023
#1
我偶然在快乐的更新日志中找到了我问题的答案。 我不得不调用catBoxMemory的引擎。这是修复:
const server = Hapi.Server({
host: 'localhost',
port: config.port,
cache:
{
name: 'memoryCache',
provider: {
constructor: catboxMemory.Engine
}
},
});
评论