Mysql
 sql >> база данни >  >> RDS >> Mysql

защо тази грешка в mysql кара nodejs да се срива, вместо да премине към функцията catch?

Всъщност @Quentine беше близо до правилното нещо...

Това е "нещо като" грешка в mysql2 , използвам sort-of, защото https://github.com/sidorares/node- mysql2/issues/902 предлага екипа за разработка на mysql2 е ОК с него.

това е проблем с начина, по който mysql2.pool предава повикването към създадената връзка, което не предава изключението от обещанието за обвиване.

В крайна сметка направих моя собствена функция за обвиване, за да създам връзката + изпълнение на повикване, обвито в правилното обработване на обещания.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възможно ли е PHP приложение, изградено върху codeigniter, да се свързва едновременно с MySQL И база данни mongoDB?

  2. Проблем при получаване на стойност на променлива в mysql заявка

  3. грешка Незаконен микс от съпоставки за конкат

  4. Параметри на C# MySQL :? или @

  5. Трябва ли да освободя mysql резултата, след като го съхраня?