gpt4 book ai didi

javascript - 如何为我的整个 Node.js 应用程序使用相同的 MySQL 连接?

转载 作者:可可西里 更新时间:2023-11-01 07:16:28 25 4
gpt4 key购买 nike

我有一个 app.js。我从那里运行我的整个应用程序。

在 app.js 中,我需要许多包含代码的文件。

对于这些文件中的每一个,我都这样做:

var mysql = require('mysql');
var mclient = mysql.createConnection({
host: settings.MYSQL.HOST,
user: settings.MYSQL.USER,
password: settings.MYSQL.PASSWORD,
database: settings.MYSQL.DB,
});

本质上,我正在为每个文件启动一个新连接。

我希望我的 app.js 建立一个连接,然后在 require 行中将它传递给每个文件。我怎样才能将连接传递给他们,以便那些文件可以使用它?

(或者我怎样才能将连接池传递给它们?)

最佳答案

您可以创建一个单独的模块,将其命名为 mysqlLib.js,它将负责创建池和返回连接:

var mysql = require("mysql");
var pool = mysql.createPool(/* credentials go here */);

exports.getConnection = function(callback) {
pool.getConnection(function(err, conn) {
if(err) {
return callback(err);
}
callback(err, conn);
});
};

在任何需要 mysql 连接的模块/文件中,您可以这样做:

var mysqlLib = require("mysqlLib");

mysqlLib.getConnection(function(err, mclient) {
//do queries that you need
});

require() 的工作方式,mysqlLib.js 中的代码只会运行一次,因此即使 require("mysqlLib.js"} 在多个文件中调用。有关模块缓存的说明,请参阅 node.js 文档的 this section

关于javascript - 如何为我的整个 Node.js 应用程序使用相同的 MySQL 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20598430/

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