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(typeof name_url) //NOTICE: output string

name_url에 대한 나의 테이블 필드는 다음과 같습니다 : 나는 실제로 문자열을 전달하고있어 그 것은 CONSOLE.LOG에 전에 검사를하고있어

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

답변

0

어려울 것으로 보인다 특정 쿼리 그 오류를 던져서 세 가지 가능성을 제시 할 수 있습니다. 첫 번째는 오류를 일으키는 코드가 실제로 다른 곳하고 있다는 것이다 :

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

잘라 코드의 다른 부분에 붙여졌다.

두 번째 가능성은 "lawersTable"변수가 예상치 못한 것으로 채워지는 것입니다.

세 번째 가능성은 처음 두 시나리오가 잘못되었다는 것입니다. ;-)

관련 문제