首页 > 解决方案 > Node js mysql2 - 重用连接

问题描述

对不起,我用了翻译器。我希望你明白。

我在使用 mysql 模块时很好奇。先看代码。

db_promise.js

创建一个池。

const mysql = require('mysql2');
const config = {
    host: process.env.DB_HOST,
    user: process.env.DB_USER,
    password: process.env.DB_PW,
    database: process.env.DB_NAME,
    connectionLimit: 100,
    queueLimit: 10000,
    multipleStatements: true,
    waitForConnections: true,
    dateStrings: 'date'
}

const createPool = mysql.createPool(config, (err)=>{
    console.error(err);
});

const pool = createPool.promise();

module.exports = pool;

run.js

Function A创建一个连接,将其传递给Function Bafter use,并继续使用它。

const pool = require('./db_promise.js');

const A = async ()=>{
    let conn;
    try {
        conn = await pool.getConnection();
        await conn.query('do stuff1..');
        await B(conn);
        return;
    }catch(e){
        console.error(e);
    } finally {
        conn.release();
    }
}
const B = async (conn)=>{
    try {
        await conn.query('do stuff2..');
        return;
    }catch(e){
        throw e;
    }
}

为每个功能创建连接将是一种浪费。当它是关联功能时,只能重用一个连接吗?

标签: javascriptmysqlnode.js

解决方案


推荐阅读