私は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,