如何在NodeJS Express应用程序的许多文件中使用一个Mysql池连接

时间:2018-07-18 19:45:55

标签: node.js express node-mysql

我一直在为此挠头。我想知道是否存在一种有效的方法来创建一个Mysql连接并在Express服务的应用程序中的不同模块之间共享它。到目前为止,在所有需要某种数据库连接的JS文件的顶部,都有以下代码:

const db = require('mysql2')
pool = db.createPool(<config details>)

// Below
pool.execute(.. ) // etc

我觉得这太过分了。是否有一种方法可以创建一个连接,例如在Express应用程序中?还是一个单独的文件,然后在需要时检索该连接?我在想类似的东西:

// In db.js
const db = require('mysql2')
module.exports = db.createPool(<config details>)

// In file1.js that needs a db connection
let db = require('./db')
db.execute(...)

// In file2.js
let db = require('./db')
db.execute(...)

以此类推。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好吧, 我想通了@paul。我创建了一个dB文件,放置MySQL连接并将其导出,以便需要该连接的其他文件可能只需要它。

// dB.sql
let MySQL = require(‘mysql2’)
module.exports = MySQL.createPool(require(‘./config’)

因此,包含上述文件的任何文件都可以访问该连接。

// File that needs pool instance
let pool = require(‘path to dB file’)

我希望这对正在寻找类似解决方案的所有人有所帮助。

干杯!