节点mariadb连接未断开

fnatzsnv  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(139)

嗨,我正在使用nodejs创建一个rest API
但我面临着一个问题
第一种子码

var http = require('http');
var url = require('url');
var mariadb = require('mariadb');

    http.createServer(function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/html'});
        var db_conn  = mariadb.createPool({
            host:"localhost",
            user:"root",
            password:"",
            database:"database",
            connectionLimit:1
        });
        db_conn.getConnection().then(db=>{
            db.query("select * from array_languages").then(data => {
                db.end();
                res.write(JSON.stringify(data));
                res.end();
            });
        });
    }).listen(8080,"localhost");

这段代码可以完美地返回数据。
但每次我发出请求时,连接仍然打开,尽管请求已完成。

预期结果

通常情况下,当我执行一个脚本时,MySql连接会在执行后关闭

我已尝试关闭联机

通过使用conn.end()
但连接仍处于打开状态

我来自PHP后台

在PHP中,如果你请求一个页面,在执行后所有的连接都会自动关闭。

如何在请求完成后关闭连接?

raogr8fs

raogr8fs1#

我忘了这道题了。但我今天试着解答它。

已解决

我试图关闭连接,但我应该关闭连接池

完整代码

var http = require('http');
var url = require('url');
var mariadb = require('mariadb');

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    var db_conn  = mariadb.createPool({
        host           : "localhost",
        user           : "root",
        password       : "",
        database       : "database",
        connectionLimit: 1
    });
    db_conn.getConnection().then(db=>{
        db.query("SELECT * FROM array_languages").then(data => {
            db_conn.end();
            db.end();
            res.write(JSON.stringify(data));
            res.end();
        });
    });
}).listen(8080,"localhost");

相关问题