2017-07-17 72 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