我是 node 的新手,并尝试为我的应用程序获得一个好的设计模式。 我做了一个模块来创建一个池
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'host',
user : 'user',
password : 'pwd',
database : 'db'
});
exports.pool = pool;
我可以通过要求在我的模块中重用它:
var db = require('./db').pool;
现在我想在 app.js 中设置池的选项,模块中的内容如下:
var mysql = require('mysql');
var pool = mysql.createPool(options);
exports.pool = pool;
...在 app.js 中,我最初必须设置此池:
ar options = {...}
var db = require('./db').pool(options);
但这行不通。我在想什么?
最佳答案
您可以使用以下模式来初始化您的池一次,然后在您的应用程序的其余部分轻松引用它:
db.js
var mysql = require('mysql');
module.exports = {
init: function(name, options) {
return module.exports[name] = mysql.createPool(options);
}
};
app.js
var options = {...}
var db = require('./db').init("pool1", options); // initialise once
something-else.js
var db = require('./db').pool1; // references the pool created in app.js
然后您还可以为其他数据库创建其他池。
关于mysql - 在应用程序中初始化一个mysql池并在模块中重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23558609/