Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点mariasql查询赢得';t terminate/mariadb.end()函数是否等待所有查询_Javascript_Node.js_Mariadb - Fatal编程技术网

Javascript 节点mariasql查询赢得';t terminate/mariadb.end()函数是否等待所有查询

Javascript 节点mariasql查询赢得';t terminate/mariadb.end()函数是否等待所有查询,javascript,node.js,mariadb,Javascript,Node.js,Mariadb,我正在使用节点运行以下脚本: 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

我正在使用节点运行以下脚本:

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()是否会等待所有查询完成

试着打电话

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()编码到示例的最后一行。根据文档,驱动程序仅在所有排队命令运行完毕后才关闭连接。

Oh。我在你的答案之前找到了db.end(),但我没有想到把它放在那里。我想这是有道理的。如果我把它放在db.query调用之后呢?它会一直阻塞直到所有的查询都完成吗?我不知道,这是真的。但为了确保所有内容都正确编写,我会尝试将其调用推迟到所有回调都运行。好的,从文档中:
end()=>一旦队列中的所有查询都执行完毕,就会关闭连接。
,因此,如果只将其放在文件的最后一行,就可以了。文档中的所有示例都可以做到这一点。谢谢。如果你不能把它放在最后,那就糟了。如果你需要做10个查询,你必须嵌套它们,这看起来很可怕。更不用说处理从json文件生成的未知数量的查询是多么困难和不直观(这实际上就是我正在尝试做的)。感谢您比我更透彻地阅读文档:)我只是在看示例,甚至没有注意到最后的api文档。我更新了我的答案以匹配您更新的问题。