首页 > 解决方案 > Node.js sequelize ConnectionManager.getConnection 在连接管理器关闭后被调用

问题描述

我们在 express 应用中使用 sequelize 作为 ORM。我在生产环境中遇到此错误,而无法在本地设置中重现此错误。在生产中,该站点使用 pm2 托管,并且有 4 名工作人员为该应用程序运行。我尝试在本地使用 pm2 运行相同的代码库,但无法重现此问题。

我只在我的一个处理 CSV 并将记录保存在数据库中的 API 中遇到了这个问题。该错误是在为上传 API 提供响应时尝试执行某些查询引起的。

使用另一个 API 运行时的 util 函数可以正常工作。

错误回溯

Error here===> Error: ConnectionManager.getConnection was called after the connection manager was closed!
at ConnectionManager.getConnection (/home/ubuntu/unberry-backend/source/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:113:13)
at /home/ubuntu/unberry-backend/source/node_modules/sequelize/lib/sequelize.js:613:111
at /home/ubuntu/unberry-backend/source/node_modules/retry-as-promised/index.js:70:21
at new Promise (<anonymous>)
at retryAsPromised (/home/ubuntu/unberry-backend/source/node_modules/retry-as-promised/index.js:60:10)
at Sequelize.query (/home/ubuntu/unberry-backend/source/node_modules/sequelize/lib/sequelize.js:606:12)
at PostgresQueryInterface.select (/home/ubuntu/unberry-backend/source/node_modules/sequelize/lib/dialects/abstract/query-interface.js:952:33)
at Function.findAll (/home/ubuntu/unberry-backend/source/node_modules/sequelize/lib/model.js:1753:47)
at processTicksAndRejections (internal/process/task_queues.js:89:5)
at async Function.findOne (/home/ubuntu/unberry-backend/source/node_modules/sequelize/lib/model.js:1917:12)
at async sendInviteToUser (/home/ubuntu/unberry-backend/source/src/services/linkService.js:43:22)
at async uploadUser (/home/ubuntu/unberry-backend/source/src/controllers/linkController.js:67:33)

使用 multer 进行文件处理。请分享见解!提前致谢。

标签: node.jsexpresssequelize.jsmulterpm2

解决方案


推荐阅读