node.js - 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 进行文件处理。请分享见解!提前致谢。
解决方案
推荐阅读
- xamarin.forms - 移动 Blazor 绑定
- r - R - 安装新软件包时如何避免搞砸现有已安装的软件包
- abap - 仅在 CDS 中的数字字段中添加前导零?
- android - 如何获得驾驶员分心优化的许可?
- powerbi - PowerBI 筛选器上下文问题
- javascript - Mapbox javascript:在移动的标记处休息(模拟红色交通灯)
- python - 是否可以在选项卡笔记本中创建窗格窗口?(Python TKinter)
- c# - 如何通过 ID 访问 IEnumerable 模型的第 2 项(或 3 或 ...x)
- sql-server - 如何在数据透视表的计算字段中求和 DISTINCT
- android - 导航抽屉未显示。我理解对了吗?