升级Node.js和Node-RED后postgres节点报连接超时是否为版本兼容问题?
问题结论
你遇到的连接超时问题大概率是node-red-contrib-postgres-variable节点与当前Node-RED版本不兼容导致。该节点v0.1.4版本最后更新于2019年,仅适配Node-RED 1.x及更早版本;Node-RED 2.x版本对运行时API、节点生命周期管理逻辑做了不向下兼容的调整,会导致旧版第三方postgres节点无法正常初始化数据库连接,最终抛出连接超时错误。
验证与解决方案
- 降级Node-RED到1.3.7版本(该节点最后更新时的最新稳定Node-RED版本),测试是否仍会触发超时错误,降级后功能恢复正常即可确认是兼容性问题
- 可替换使用官方维护的
node-red-node-postgres节点,该节点已适配Node-RED 2.x及Node.js 14+版本,功能与当前使用的第三方节点基本一致 - 若需继续使用当前postgres变量节点,可手动调整节点源码适配Node-RED 2.x的运行时API,核心修改节点初始化时的数据库连接实例挂载逻辑,适配新版Node-RED的节点生命周期回调规则
错误参考截图

运行环境信息
- 操作系统:Windows 10 Pro
- Node.js版本:v14.17.6
- Node-RED版本:v2.0.6
node-red-contrib-postgres-variable版本:v0.1.4
内容的提问来源于stack exchange,提问作者Oosutsuke
相关产品推荐
相关产品推荐

