sql >> Database teknologi >  >> RDS >> Mysql

hvorfor får denne mysql-fejl nodejs til at gå ned i stedet for at gå til catch-funktionen?

Faktisk var @Quentine tæt på det rigtige...

Det er "en slags" en fejl i mysql2 ,jeg bruger slags, fordi https://github.com/sidorares/node- mysql2/issues/902 foreslår udviklingsteamet for mysql2 er o.k. med det.

det er et problem med den måde, mysql2.pool videregiver opkaldet til den oprettede forbindelse, som ikke videregiver undtagelsen til indpakningsløftet.

Jeg endte med at lave min egen ombrydningsfunktion for at skabe forbindelsen + opkaldsudførelse pakket ind i korrekt løftehåndtering.

import mysql = require('mysql2');
private async queryDB(query:string, useExecute: boolean = false, ...args:any[]) : Promise<any[]>
    {
        return new Promise<any[]>((resolve, reject)=>{
            for(var i = 0; i < args.length; ++i)
            {
                if(args[i]===undefined)
                    args[i] = null;
            }
            this.dbPool.getConnection((err, conn)=>{
                if(err){
                    reject(err);
                    return;
                }
                
                let cb = function(err: mysql.QueryError, results: any[], fields: mysql.FieldPacket[]) {
                    conn.release();
                    if(err)
                    {
                        reject(err);
                        return;
                    }
                    resolve(results);
                }
                if(useExecute)
                    conn.execute(query, args, cb);
                else
                    conn.query(query, args, cb);                
            });
        });
    }


  1. rails migration:postgresql for md5 af tilfældig streng som standard

  2. Konverter postgresql hstore til php-array

  3. ClassNotFoundException:oracle.jdbc.OracleDriver

  4. Er MariaDB JDBC-driveren påvirket af Log4j-sårbarheden?