0

ノードで次のスクリプトを実行しています。

var mariadb = require("mariasql");
var db = new mariadb();
db.connect({
    host: "localhost",
    user: "root",
    password: "bus1708v2.0",
    db: "test"
});

db.query("INSERT INTO Persons (LastName, FirstName) VALUES ('Some', 'Name')")
    .on("result", function(result){
        result.on("end", function(info){
            console.log(info);
            console.log(result);
        });
    });

データベースに正常に挿入されますが、ctrl-c を押してスクリプトを終了する必要があります

アップデート

db.end(); を置く必要があることに気づきました。最後に

この場合、db.end() はすべてのクエリが終了するのを待ちますか?

4

1 に答える 1

1

電話してみる

db.end();

データベースへの書き込みが完了すると、ドライバーは接続を開いたままにし、Node.js がシャットダウンするのを防ぎます。だからあなたのコードは

db.query("INSERT INTO Persons (LastName, FirstName) VALUES ('Some', 'Name')")
    .on("result", function(result){
        result.on("end", function(info){
            console.log(info);
            console.log(result);
            db.end();
        });
    });

db.end();または、サンプルの最後の行に呼び出しを入れるだけです。ドキュメントによると、ドライバーは、キューに入れられたすべてのコマンドが実行された後にのみ接続を閉じます。

于 2013-08-13T18:42:05.653 に答える