javascript 如何关闭 node.js 中的数据库连接?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19563474/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-27 15:59:30  来源:igfitidea点击:

How to close database connection in node.js?

javascriptnode.js

提问by Vardan

When i am closing database connection in node.jsi am getting this error

当我在node.js 中关闭数据库连接时出现此错误

Cannot enqueue Query after invoking quit.

Cannot enqueue Query after invoking quit.

Here is my code

这是我的代码

socket.on('adminConnect', function (email) {
    connection = mysql.createConnection(db_config); // db_config has all details of database
    connection.connect(); // no problem in connection
    connection.query("SELECT id FROM user WHERE  email = '" + email + "' ", function (err, results, fields) {
        if (err) throw err;
        if (results[0]) {
            // Some code
            connection.end(); // its giving error "Cannot enqueue Query after invoking quit."
        } else {
            console.log("no id");
        }
    });
});

采纳答案by randunel

In general, you reuse connections instead of opening/closing all the time.

通常,您重用连接而不是一直打开/关闭。

To answer your question, this is how:

要回答您的问题,方法如下:

connection.end();

Try putting the line outside the callback, because all the queries must complete before ending a connection, so you're safe like this:

尝试将该行放在回调之外,因为所有查询都必须在结束连接之前完成,因此您可以像这样安全:

connection.query(.......);
connection.end();

Your code would then be:

您的代码将是:

socket.on('adminConnect', function (email) {
    connection = mysql.createConnection(db_config); // db_config has all details of database
    connection.connect(); // no problem in connection
    connection.query("SELECT id FROM user WHERE  email = '" + email + "' ", function (err, results, fields) {
        if (err) throw err;
        if (results[0]) {
            // Some code
        } else {
            console.log("no id");
        }
    });
    connection.end();
});