Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

tại sao lỗi mysql này gây ra lỗi nodejs thay vì chuyển đến hàm catch?

Trên thực tế, @Quentine đã gần đúng ...

Đó là "một loại" lỗi trong mysql2 , tôi sử dụng loại vì https://github.com/sidorares/node- mysql2 / issue / 902 đề xuất nhóm phát triển của mysql2 là o.k. với nó.

nó là một vấn đề với cách mysql2.pool chuyển cuộc gọi đến kết nối đã tạo, điều này không chuyển ngoại lệ cho lời hứa gói.

Tôi đã kết thúc việc tạo hàm gói của riêng mình để tạo kết nối + thực thi cuộc gọi được bao bọc trong xử lý lời hứa thích hợp.

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. Kết nối với phiên bản mysql OpenShift (Redhat Paas)

  2. Chơi! Khung 1.2.4 --- Cài đặt C3P0 để tránh lỗi liên kết Truyền thông do thời gian nhàn rỗi

  3. MySQL:lỗi 150 khi sử dụng ON UPDATE SET NULL và ON DELETE SET NULL, tại sao?

  4. Làm thế nào tốt nhất để so sánh với 0 trong PHP?

  5. Làm thế nào để tạo liên kết cơ sở dữ liệu trong MySQL để kết nối với Oracle?