2017-11-01 5 views
0

私は、その場で自分の資格情報を使用して別のデータベースに接続する必要があるAPIを作成しています。私はMySqlワークベンチ - テスト接続と似た機能を作る必要があります。現在、MySqlとMSSqlサーバーを扱う必要があります。間違った資格情報のすべての順列と組み合わせをチェックする必要があります。つまり、たとえば正しいホスト名、ユーザー名、パスワード、ポートなどの正しい資格情報を渡しても、MySqlではなくコネクタが間違っている場合は、Mssqlを渡します。それは例外をスローしています。NODE.JSをオンザフライで複数のデータベースに接続するとエラーが表示されます

var db = { 
    host   : data.hostName, 
    port   : data.port, 
    database  : data.database, 
    username  : data.userName, 
    password  : data.password, 
    connector  : response[0].node_js_connector 
} 

var dataSource = new DataSource(db.connector, db); 
dataSource.on('connected', function (er) { 
    if(er) { 
    console.log("reject"); 
    reject(er); 
    } 
    else { 
    console.log("resolve"); 
    resolve('Work With Database'); 
    } 
}); 
dataSource.on('error', function (er) { 
    if(er) { 
    console.log("reject1"); 
    reject(er); 
    } 
    else { 
    console.log("reject1"); 
    reject('Not Connected Databse'); 
    } 
}); 

例外を処理するためにtry/catchブロックにコードを挿入しました。しかし、私はそれをキャッチすることはできません。現在、次のエラーが発生しています。

throw new RangeError('Index out of range'); 

RangeError: Index out of range 
    at checkOffset (buffer.js:968:11) 
    at Buffer.readUInt8 (buffer.js:1006:5) 

誰かがこの問題を解決するのに役立つ場合は、大きな助けになります。

ありがとうございます。

+0

「応答」の長さは0に見えますが、どのように定義されていますか? – spicypumpkin

+0

@spicypumpkinまず第一に私は '応答'を得ていませんでした。説明会は「応答」を受ける前に行われます。 –

+0

まあ、私は、あなたが空の配列 'response'から最初の要素を取得しようとしていることを伝えることができます。つまり、' IndexError'です。配列が空であるかどうかをチェックする方法を見つけなければなりません。希望が役立ちます。 – spicypumpkin

答えて

0

私はヘッドランドにprocess.on()メソッドを使用します。uncaughtExceptionこのメソッドはファイル実行時にすべての例外を処理します。したがって、今回はuncaughtExceptionが私のIndex out of range例外を処理します。私のデータソース接続を拒否します。