今、私はノードJSで非常に大きなアプリケーションを作成しています。私は自分のコードをきれいにして短くしようとしています(ほとんどの開発者のように)。私は自分のjsファイルを作成してmysqlへの接続を処理しています。以下のコードをご覧ください。私はループ私のモデルのメソッドをする関数を作成しようとしていますとき、このコーディングスタイルを使用してノードjs。接続を作成するための適切な/ベストプラクティス
var database = require('../../config/database.js');
module.exports.getData = function(successCallBack){
database.query('SAMPLE QUERY GOES HERE', function(err, result){
if(err) {console.log(err)}
//My statements here
});
}
すべてが正常に動作しますが:
var mysql = require('mysql');
var config = {
'default' : {
connectionLimit : process.env.DB_CONN_LIMIT,
host : process.env.DB_HOST,
user : process.env.DB_USER,
password : process.env.DB_PASS,
database : process.env.DB_NAME,
debug : false,
socketPath : process.env.DB_SOCKET
}
};
function connectionFunc(query,parameters,callback,configName) {
configName = configName || "default";
callback = callback || null;
parameters = parameters;
if(typeof parameters == 'function'){
callback = parameters;
parameters = [];
}
//console.log("Server is starting to connect to "+configName+" configuration");
var dbConnection = mysql.createConnection(config[configName]);
dbConnection.connect();
dbConnection.query(query,parameters, function(err, rows, fields) {
//if (!err)
callback(err,rows,fields);
//else
//console.log('Error while performing Query.');
});
dbConnection.end();
}
module.exports.query = connectionFunc;
私は以下のように、私のモデルでは、上記のファイルを使用しています何らかの理由で。それは私にER_CON_COUNT_ERROR : Too Many Conenction
を与える
for (i = 0; i < 10000; i++) {
myModel.getData(param, function(result){
return res.json({data : result });
});
}
:下のサンプルを参照してください。問題はなぜ私は接続が常にこのdbConnection.end();
によって終了したときにこれらのようなエラーが表示されるのですか?私は何かが欠けているかどうかまだ分かりません。私はまだこれに固執しています。 私の接続制限は100です。私は接続を増やすことは悪い考えです。
接続を使用しようとしています[リンクの説明をここに入力してください](http://stackoverflow.com/questions/18496540/node-js-mysql-connection-pooling)これが役立つことを願って... –
リンクをありがとう。私はすでにそのアプローチを考えてきました。しかし、プールが何らかの理由で破壊されたときに私は問題を抱えています。私のアプリケーションはもう動作しません。 -_-。 –