1

Node.js の Javascript MySQL Libraryを使用しています。それは素晴らしいことですが、INSERT/UPDATE クエリ プロセスの完全性 (または) 終了を検出できません。どうすれば検出できますか?

例えば:

function start_query() {
    conn.query(
        'INSERT .....',
        function(err, rows, fields) {
            if (err) {
                console.log("Err!");
            } else {
                console.log("INSERTED!");
            }
        }
    );
}
start_query();
console.log("QUERY DONE!");

これを実行すると、次のように返されます。

QUERY DONE!
INSERTED!

プロセスは REVERSELY を返し、クエリの END POINT を検出していません。
どうすればそれを機能させることができますか?

4

2 に答える 2

5

Node.jsは、ファイル操作、ネットワーク/データベースアクセスなど、CPUに依存しないすべてのことを非同期的に実行します。これは、高速を維持するために必要です。

したがって、コールバック関数でクエリが終了した後に発生する必要があるすべてのことを行う必要があります。

function start_query(callback) {
    conn.query('INSERT .....', function(err, rows, fields) {
        if(err) {
            console.log("Err!");
        } else {
            console.log("INSERTED!");
        }
        callback();
    });
}
start_query(function() {
    console.log("QUERY DONE!");
});
于 2012-06-08T15:41:48.870 に答える
0

query非同期関数です。はfunction(err,rows,fields)、クエリが完了したときにのみ呼び出されます。これはコールバック関数であり、イベントI / Oにより、NodeJS環境で広く使用されています。関数をイベントに登録します。イベントが完了すると、それらはコールバックされます。

于 2012-06-08T15:42:06.720 に答える