这是在nodejs中创建mysql2连接的单个实例的正确方法吗?

问题描述

我目前有以下 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 (将#修改为@)