- 13, May 2024
- #1
У меня есть несколько моделей/модулей, таких как Пользователь, Кошелек, оба этих модуля вызываются из экспресс-приложения, такого как User.login(req,res);
прямо сейчас в каждый User.js и Wallet.js я включаю data.js, который выглядит следующим образом:
Мой вопрос: есть ли лучший способ включить это вместо require('./database.js) как в User.js, так и в Wallet.js? В идеале я вызываю data.js в главном файле приложения app.js и делаю так, чтобы пул был виден модулям, которые я включаю, например User.js и Wallet.js.
var mysql = require('mysql2/promise')
var pool = mysql.createPool({
connectionLimit: 10,
host: 'localhost',
user: 'x',
password: 'x',
database: 'x'
});
pool.getConnection((err, connection) => {
if (err) {
if (err.code === 'PROTOCOL_CONNECTION_LOST') {
console.error('Database connection was closed.')
}
if (err.code === 'ER_CON_COUNT_ERROR') {
console.error('Database has too many connections.')
}
if (err.code === 'ECONNREFUSED') {
console.error('Database connection was refused.')
}
}
if (connection) connection.release()
return
})
module.exports = pool
Код (разметка): затем в User.login() я могу использоватьpool.query/pool.execute.
Мой вопрос: есть ли лучший способ включить это вместо require('./database.js) как в User.js, так и в Wallet.js? В идеале я вызываю data.js в главном файле приложения app.js и делаю так, чтобы пул был виден модулям, которые я включаю, например User.js и Wallet.js.