javascript - nodejs mariadb连接没有断开
问题描述
嗨,我正在使用 nodejs 创建一个休息 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 中,如果您请求页面,执行后所有连接将自动关闭。但在这里我面临着一些新的东西。
请求完成后如何关闭连接?
解决方案
我忘记了这个问题。但我今天试图解决它。
解决了
我试图关闭连接,但我应该关闭连接池而不是这个
完整代码
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");
推荐阅读
- thymeleaf - Thymeleaf:在没有应用程序上下文路径的情况下获取 href
- forms - 上传到 Asset Store 时 Xamarin.Forms 缺少 120x120
- ruby-on-rails - Ruby on Rails [heroku] git push heroku master 错误
- php - 如何使用 php 文件运行 python 脚本
- momentjs - 在 DST 过渡期间增加几个小时
- c++ - 整数类型的 std::isnan 和 std::isinf 重载
- c# - 获取当前登录用户的名字
- distributed-system - etcd 如何将写入传播给非领导成员?
- android - 如何正确解析 Firestore API JSON?
- c# - c#如何在后台为数组创建Array抽象类的实例?