私はExpressJS guideで次のが見つかりました:Expressはどのように非同期で動作しますか?
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'dbuser',
password : 's3kreee7'
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
if (err) throw err;
console.log('The solution is: ', rows[0].solution);
});
connection.end();
が、これは悪い習慣ことになっていませんか?私がそれを見る方法では、クエリが実行される前に接続が終了する可能性があります。それは間違いを与えないだろうか?
確かに、コールバックは起こらないでしょう - それは 'end'の後に起こります - だから私はこれが悪いコードだと思うでしょう – Soren
コールバックが起こっていないかどうかは関係ありません'end()'を実行すると、前のクエリが実行されるのを妨げることはありません。 Wetherかどうかは、この悪質なコードはあなた次第であると考えていますが、質問で尋ねられたように "エラーを出す"ことはありません。 – Drown
コールバックコードが新しいクエリを作成するとどうなりますか? – Soren