0

私はnode.jsにname_urlに基づいてpostgresにクエリを行う次の関数を持っています。ときどき動作し、時にはうまく動作しないことがあります。エラー:整数の入力構文が無効です:文字列を渡すとき

また、私はlibにPG-約束使用しています:それはそれはエラーがスロー動作しない場合は

exports.getLawyerByUrlName = function (name_url, callback) { 
    console.log(typeof name_url) //NOTICE: output string 

    db.one({ 
      text: "SELECT * FROM " + lawyersTable + " WHERE name_url LIKE $1::varchar", 
      values: name_url, 
      name: "get-lawyer-by-name_url" 
     }) 
     .then(function (lawyer) { 
      callback(lawyer); 
     }) 
     .catch(function (err) { 
      console.log("getLawyerByUrlName() " + err) 
     }); 
} 

を:

getLawyerByUrlName() error: invalid input syntax for integer: "roberto-guzman-barquero" 

これは私がキャッチすることができないように非常に奇妙なバグですなぜ起こったのか。私は、私が実際に文字列を渡していることにconsole.logにする前にチェックしています:

console.log(typeof name_url) //NOTICE: output string

name_urlのための私のテーブルのフィールドは次のとおりです。

CREATE TABLE lawyers(
... 
    name_url VARCHAR check(translate(name_url, 'abcdefghijklmnopqrstuvwxyz-', '') = '') NOT NULL UNIQUE, 

答えて

0

それは、その特定のクエリとは考えにくいように思わそのエラーを投げることができるので、3つの可能性を提案します。最初はエラーを引き起こしているコードは、実際に他のどこかに、そのあるということである。

.catch(function (err) { 
      console.log("getLawyerByUrlName() " + err) 

を切断し、コードの異なる部分に貼り付けました。

第2の可能性は、 "lawersTable"変数に予期せぬものが入力されることです。

第3の可能性は、最初の2つのシナリオが間違っていることです。 ;-)

関連する問題