나는 node.js에 name_url
에 기반하여 postgres에 대한 쿼리를 작성하는 다음 함수를 사용합니다. 때로는 효과가 있고 때때로 작동하지 않는 경우도 있습니다. 오류 : 정수에 대한 입력 구문이 유효하지 않습니다. 문자열을 전달할 때
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,