启动应用时遭遇Avvio错误(错误码AVV_ERR_READY_TIMEOUT)求助
解决AVV_ERR_READY_TIMEOUT(fastifyDecorators插件启动超时)错误
这个错误是Fastify的启动框架avvio抛出的,核心原因是fastifyDecorators插件在规定时间内没完成初始化——要么是插件代码里忘了调用done回调,要么是异步逻辑没有正确resolve Promise。
下面是具体的排查和解决方法:
核对版本兼容性
错误信息里明确标注插件要求Fastify版本为^3.0.0 || ^4.0.0,先检查你项目里的Fastify版本是否匹配。执行npm list fastify查看当前版本,不兼容的话就升级或降级到符合要求的版本。修正插件注册逻辑
如果你是手动注册fastifyDecorators,确保异步处理逻辑正确:// 方式1:用async/await等待注册完成 await fastify.register(require('fastify-decorators')); // 方式2:使用回调处理错误 fastify.register(require('fastify-decorators'), (err) => { if (err) throw err; });别遗漏回调函数,也别忘记await异步注册操作。
排查自定义代码中的阻塞/未完成异步操作
检查你基于fastifyDecorators写的装饰器、控制器等代码,有没有长时间运行的同步阻塞操作,或者存在未正确resolve的Promise。比如在装饰器初始化时调用了外部API但没等待结果,就会导致插件启动超时。调整插件启动超时阈值
如果确认插件逻辑没问题,但初始化确实需要更长时间,可以在创建Fastify实例时调整超时参数:const fastify = require('fastify')({ pluginTimeout: 10000 // 把超时时间改成10秒,默认是5秒 });
内容的提问来源于stack exchange,提问作者iwandede
相关产品推荐
相关产品推荐

