如何在nodejs退出

时间:2018-06-05 05:26:14

标签: javascript node.js oracle

我在我的nodejs应用程序中使用oracle数据库。

更改任何表时,我收到错误资源已在使用

此错误的原因是,当终止或退出nodejs应用程序时,数据库连接未被释放或关闭。

我知道如何发布数据库连接

function doRelease() {
    db.close(
        function (err) {
            if (err)
                console.error(err.message);
        });
}

但我不知道,如何在nodejs exit或node terminate上调用上面的函数?

所以我想要简单的帮助

退出或终止nodejs应用程序时如何释放数据库连接

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:0)

var mysql = require('mysql');
var pool  = mysql.createPool({
  connectionLimit : XX,
  host            : 'yourHost',
  user            : 'user',
  password        : 'password'
});

pool.getConnection(function(err, connection,) {
    connection.query( 'SELECT something FROM sometable', function(err, rows) {

//handler
      connection.release();//this is the important step

   });
});

您也可以使用: .query

pool.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
  if (err) throw err;

  //your success handler
});

pool.query()pool.getConnection() + connection.query() + connection.release()

的快捷方式

如果您在退出处理程序上查找内容:

function graceExitHandler(){
// close the db connection here.
..
} 

//when nodejs app is closing
process.on('exit', exitHandler);

//on Ctrl + C interrupt
process.on('SIGINT', exitHandler);

答案 1 :(得分:0)

关于nodejs退出的类似问题在link

if(!ncol(data_read) == 9){
    print("There are not 9 columns in this file")
    return(FALSE)
} else if{
  OTHER PARAMETERS HERE (such as the one I'm trying to figure out)
  }

   return(TRUE}
 }

以上代码对我有用

答案 2 :(得分:0)

简单的解决方案是使用initializeclose等方法创建数据库模块。然后你需要在合适的时间调用这些方法。我喜欢将它们绑定到主模块中的各种事件中。

Creating a REST API with Node.js and Oracle Database上查看我的系列中的第1部分和第2部分,了解相关内容。