Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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 NodeJs程序完成后未退出_Javascript_Mysql_Node.js - Fatal编程技术网

Javascript NodeJs程序完成后未退出

Javascript NodeJs程序完成后未退出,javascript,mysql,node.js,Javascript,Mysql,Node.js,很抱歉这个问题,我是Javascript的初学者。我正在使用nodejsmysql包将我的节点应用程序连接到数据库。但在成功运行查询后,程序不会退出,它将永远停留在那里,直到我手动终止它。我希望程序运行查询并退出程序 pool.end(function(err) { if (err) { return console.log('error:' + err.message); } console.log('Close the database connection.'); })

很抱歉这个问题,我是Javascript的初学者。我正在使用nodejsmysql包将我的节点应用程序连接到数据库。但在成功运行查询后,程序不会退出,它将永远停留在那里,直到我手动终止它。我希望程序运行查询并退出程序

pool.end(function(err) {
  if (err) {
    return console.log('error:' + err.message);
  }
  console.log('Close the database connection.');
});
我正在使用的代码:

var mysql = require("mysql");

var pool = mysql.createPool({
    connectionLimit: 100,
    host: "Hostname",
    user: "User",
    password: "Password",
    database: "DB_name",
    debug: false,
});

function sql_query() {
    pool.getConnection(function (err, connection) {
        if (err) {
            console.log(err.code + ' : '+ err.sqlMessage);
            return;
        }

        var query = "MY-QUERY_STRING";

        connection.query(query, (error, results, fields) => {

            connection.release();

            if (error) {
                console.log(error);
                return;
            }

            console.log("Done");
            return results;
        });
    });
}

var result = sql_query();
console.log(result);

您必须关闭MySQL连接才能退出程序。通过在成功块中使用以下代码,您将退出程序

pool.end(function(err) {
  if (err) {
    return console.log('error:' + err.message);
  }
  console.log('Close the database connection.');
});

您必须关闭MySQL连接才能退出程序。通过在成功块中使用以下代码,您将退出程序

pool.end(function(err) {
  if (err) {
    return console.log('error:' + err.message);
  }
  console.log('Close the database connection.');
});

只要池处于打开状态,节点进程就不会退出。查看更多详细信息。 如果要在执行一个查询后关闭池,可以执行以下操作:

...
connection.query(query, (error, results, fields) => {
            pool.end(); // you can pass a callback here as well to handle errors
            ...
});
...

还要注意,您正试图将
sql\u查询的结果分配给
result
。这将不起作用,因为您无法通过这种方式从回调返回值。查看更多详细信息。

只要池处于打开状态,节点进程将不会退出。查看更多详细信息。 如果要在执行一个查询后关闭池,可以执行以下操作:

...
connection.query(query, (error, results, fields) => {
            pool.end(); // you can pass a callback here as well to handle errors
            ...
});
...

还要注意,您正试图将
sql\u查询的结果分配给
result
。这将不起作用,因为您无法通过这种方式从回调返回值。查看更多详细信息。

您必须关闭与pool.end()的连接,如果您希望在返回
结果之前关闭连接

        connection.query(query, (error, results, fields) => {

            connection.release();

            if (error) {
                console.log(error);
                return;
            }

            console.log("Done");
            pool.end()
            return results;
        });

在返回
结果之前,必须关闭与pool.end()的连接

        connection.query(query, (error, results, fields) => {

            connection.release();

            if (error) {
                console.log(error);
                return;
            }

            console.log("Done");
            pool.end()
            return results;
        });