Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

यह mysql त्रुटि कैच फ़ंक्शन पर जाने के बजाय नोडज को क्रैश करने का कारण क्यों बनती है?

दरअसल, @Quentine सही चीज़ के करीब था...

यह mysql2 . में एक बग "प्रकार" है , मैं सॉर्ट-ऑफ का उपयोग करता हूं क्योंकि https://github.com/sidorares/node- mysql2/मुद्दों/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. MySQL को LIKE और REGEXP में बहु-बाइट वर्णों के बारे में कैसे जागरूक करें?

  2. कोडनिर्देशक में सक्रिय रिकॉर्ड योग

  3. CSV फ़ाइल को सीधे MySQL में आयात करें

  4. PHP में बैकग्राउंड/एसिंक्रोनस राइट-बैक कैशिंग को कैसे लागू करें?

  5. MySQL में इमोजी (UTF8 4 बाइट कैरेक्टर) कैसे डालें <5.5