问题描述
我目前有以下 database.js
文件:
const MysqL = require('MysqL2');
const connection = MysqL.createPool({
host: process.env.DB_HOST,user: process.env.DB_USER,port: process.env.DB_PORT,password: process.env.DB_PASS,database: process.env.DB_NAME,});
module.exports = connection;
我将它用于正常路由和异步请求:
使用示例 1:
const sql = require('../config/database');
User.getAll = (result) => {
sql.query('SELECT * FROM users',(error,res) => {
error ? result({ status: 'fail',error },null) : result(null,res);
});
};
module.exports = User;
使用示例 2:
const pool = require('../config/database');
exports.getUserFromIdAsync = async (userId) => {
const conn = pool.promise();
const sqlQuery = `SELECT * FROM users WHERE userId = ${userId}`;
try {
let [rows] = await conn.execute(sqlQuery);
return rows[0];
} catch (error) {
return { status: 'fail',error };
}
};
我正在使用 createPool
,因为它显然只创建了一个连接实例。
所以我的问题如下:我认为我的连接确实只创建了一次是否正确?或者它是否在我调用 require('../config/database')
时多次创建。
我问的原因是因为我在创建池时看到了这段可能的代码:
import MysqL from 'MysqL2/promise';
const pool = MysqL.createPool(params);
const getConnection = () => pool.getConnection();
export { getConnection }
这是 link。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)