Fehler: Die Abfrage kann nach einem schwerwiegenden Fehler nicht in die Warteschlange gestellt werden, wenn Nodejs eine Verbindung zu MySQL herstellt

Tipp: Nachdem der Artikel geschrieben wurde, kann das Inhaltsverzeichnis automatisch generiert werden. Informationen zum Generieren finden Sie im Hilfedokument rechts

1. Wie stellt NodeJS eine Verbindung zu MySQL her?

npm install mysql --save

Erstellen Sie den Verbindungscode db.js

//导入mysql连接包
const mysql = require('mysql');
let dbconfig ={
    
    
    host: 'db_host',
    user: 'db_user',
    password: 'db_pass',
    database: 'db_name',
    debug: true
};
function handleDisconnection() {
    
    
    db = mysql.createConnection(dbconfig);
    db.connect(function (err) {
    
    
        if (err) {
    
    
            console.log('db connect error:' + err.message + "2秒后重连");
            setTimeout(handleDisconnection, 2000);
        }
    });

    db.on('error', function (err) {
    
    
        console.log(err);
        if (err.code === 'PROTOCOL_CONNECTION_LOST') {
    
    
            console.log('db error执行重连:' + err.message);
            handleDisconnection();
        } else {
    
    
            throw err;
        }
    });
    db.querySync = function(sql) {
    
    
        return new Promise(function(resolve, reject) {
    
    
            db.query(sql, function(error, results, fields) {
    
    
                if(error) reject(error);
                else resolve({
    
    results, fields})
            })
        })
    };
    return db;

}
//创建连接conn
exports.db = handleDisconnection();

2. Fehler: Die Abfrage kann nach einem schwerwiegenden Fehler nicht in die Warteschlange gestellt werden, wenn Nodejs eine Verbindung zu MySQL herstellt

1. Ursprüngliche Konfigurationsparameter

let dbconfig ={
    
    
    host: 'db_host',
    user: 'db_user',
    password: 'db_pass',
    database: 'db_name',
    debug: true
};

Fügen Sie einfach den Parameter useConnectionPooling: true hinzu

2. Neue Konfigurationsparameter

let dbconfig ={
    
    
    host: 'db_host',
    user: 'db_user',
    password: 'db_pass',
    database: 'db_name',
    useConnectionPooling: true,
    debug: true
};

おすすめ

転載: blog.csdn.net/itopit/article/details/130620406