2017-07-17 75 views
0

当使用SEAN堆栈(Sequelize,Express,Angular,Nodejs)开发的Web应用程序变为空闲状态并且用户在超时后注销时,sequelize/tedious会抛出异常。Sequelize池相关问题

任何关于sequelize连接池或数据库连接释放标准方式的指针都会有所帮助。

错误是 “资源不是该池的一部分目前” 使用

版本:

讨厌的版本2.0.0

Sequelize版本4.1.0

错误:

Unhandled rejection Error: Resource not currently part of this pool 
    at Pool.destroy (\node_modules\sequelize\node_modules\generic-pool\lib\Pool.js:450:35) 
    at Connection.<anonymous> (\node_modules\sequelize\lib\dialects\mssql\connection-manager.js:124:25) 
    at emitOne (events.js:77:13) 
    at Connection.emit (events.js:169:7) 
    at Connection.socketError (\node_modules\tedious\lib\connection.js:703:14) 
    at emitOne (events.js:77:13) 
    at Socket.emit (events.js:169:7) 
    at emitErrorNT (net.js:1257:8) 
    at doNTCallback2 (node.js:441:9) 
    at process._tickCallback (node.js:355:17) 

回答

0

我有同样的错误,但它不会导致我的应用程序崩溃。所以我加入的代码,这部分以处理:

const unhandledRejections = new Map(); 
process.on('unhandledRejection', (reason, p) => { 
    unhandledRejections.set(p, reason); 
}); 
process.on('rejectionHandled', (p) => { 
    unhandledRejections.delete(p); 
}); 

希望这将有助于...

+0

是的,它的工作原理。谢谢。 – Amaldev

+0

另外一个观察结果是 - 我从笔记本电脑运行应用程序进行测试,当它与网络断开连接时,它会失去与数据库的连接,并且可能导致此资源错误。添加处理程序后,不再发生。 – Amaldev