对于带有IBM DB2的NodeJS,我看到很少的在线帖子。我是NodeJS的新手,并且在为我的网络应用程序配置连接池时遇到问题。我在本地运行单一连接的节点应用程序成功,但不知道如何配置连接池。下面的代码是我如何进行单一连接。
DBConnection JS:
module.exports = function(dbConnection)
{
var Pool = require('ibm_db').Pool;
var pool = new Pool();
pool.open("MY_CONNECTION_STRING",function(err,connection){
//error handling logic ...
dbConnection(connection);
});
}
应用程序监听器js:
var express = require('express');
var app = express();
app.listen(8080,function(){
console.log("server started..);
});
require('./DBConnection')(function(connection){
app.get('/getEmpId',function(req,res){
connection.query("MY_SQL_QUERY",function(error,results,fields){
//some other logic
res.send(results[0]);
//Closing connection
connection.close(function(err2) {
if(err2) console.log(err2);
});
});
});
}
需要您建议连接池,我可以在并发用户访问时为每个请求使用一个连接,并在提供请求后关闭连接。
答案 0 :(得分:2)
您可以查看IBM node-ibm_db driver提供的简短示例。它有Connection Pooling部分。驱动程序重用node-odbc池,您需要调用Pool
对象上的打开/关闭调用。以下是从node-ibm_db网站获取的示例:
var Pool = require("ibm_db").Pool
, pool = new Pool()
, cn = "DATABASE=dbname;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=dbuser;PWD=xxx";
pool.open(cn, function (err, db) {
if (err) {
return console.log(err);
}
//db is now an open database connection and can be used like normal
//if we run some queries with db.query(...) and then call db.close();
//a connection to `cn` will be re-opened silently behind the scense
//and will be ready the next time we do `pool.open(cn)`
});