私はnodejsを非常に新しくしています。作成しようとしているサービスがあり、mysql接続をそのままconnection.connect()
としておくことができないことに気付きました。だから私は接続を継続するこの方法を考案しましたが、これが接続を維持する正しい方法であるかどうかはわかりませんでした。コードの途中でコメント部分を見ている人はいますか?エクスプレスでmysql接続を維持する
app.get('/keyboard', function(req, res){
connection.connect();
connection.query("SELECT `hour` from timetable WHERE `reserved` = '0'", function(err, rows, fields){
if(err) throw err;
var buttons = [];
for(var i = 0; i < rows.length; i++){
buttons.push(rows[i].hour);
}
console.log("available time: " + buttons);
var return_data = {
"type" : "buttons",
"buttons" : buttons
};
//console.log(return_data);
res.send(return_data);
});
connection.end(); // connection ends here
//connection.connect() doesn't create a new connection.
connection = mysql.createConnection({ // another connection like this?
host : 'localhost',
user : 'user',
password : 'pw',
database : 'db'
});
});
詳細な説明をありがとう!だから、あなたが言っているのは、私がプールを使うなら、 'connection.end()'を呼び出す心配はありませんよね? – hklee93
@ hklee93 ah残念ですが、 'getConnection'シナリオでは、' connection.release(); 'を使って接続をプールに戻す必要があります。しかし、クエリ関数direcltyをプール( 'pool.query')だけで呼び出すと、' release'または 'end'を使う必要はありません。 –
ありがとう!私を通り越して試してみましょう – hklee93