gpt4 book ai didi

javascript - 我应该如何使用node.js 和导出来调用mysql 数据库?

转载 作者:行者123 更新时间:2023-11-29 21:02:23 25 4
gpt4 key购买 nike

我正在使用node.js、express等开发一个API,使用mysql数据库。我正在使用 node-mysql 连接数据库并对其执行查询。

为了拥有干净的代码,我将其分为 Controller 和模型。但我面临着这个:

模型/user.js

var mysql      = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
port : 3307,
user : 'root',
password : 'root',
database : 'db'
});

User.prototype.blablabla = function() {
...
connection.query(...);
}

模型/admin.js

var mysql      = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
port : 3307,
user : 'root',
password : 'root',
database : 'db'
});

Admin.prototype.blablabla = function() {
...
connection.query(...);
}

问题是,我必须在每个文件上创建一个到数据库的连接,即使我只想有一个我调用的连接,并且当我完成后,我将其关闭。

但是通过这种配置,使用使用回调和其他内容的 Controller ,我无法关闭连接。它始终在运行。

我正在寻找一种安全的方法来仅使用一个数据库连接实例。这是一个好方法吗?我怎样才能实现这个目标?

最佳答案

为该连接信息创建一个特定文件怎么样?

/connection.js

var mysql      = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
port : 3307,
user : 'root',
password : 'root',
database : 'db'
});

module.exports = connection;

因为 require 缓存了它加载的模块,所以连接只会打开一次。引用http://fredkschott.com/post/2014/06/require-and-the-module-system/

然后,请注意,要关闭连接,可以使用连接实例及其方法end

connection.end();

引用https://github.com/felixge/node-mysql

关于javascript - 我应该如何使用node.js 和导出来调用mysql 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37104675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com