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 回答