0

Ich habe die folgende Funktion in node.js, die basierend auf name_url eine Abfrage für Postgre basiert. Manchmal funktioniert es und manchmal funktioniert es einfach nicht.Fehler: ungültige Eingabesyntax für Ganzzahl: beim Übergeben von Zeichenfolgen

Auch verwende ich lib pg-Versprechen:

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) 
     }); 
} 

Wenn es nicht funktioniert, es wirft Fehler:

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

eine sehr seltsame Fehler Dies ist ich nicht zu fangen scheinen kann warum es passiert. Ich überprüfe, bevor in console.log, dass ich vorbei tatsächlich eine Zeichenfolge:

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

Mein Tabellenfeld für name_url ist:

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

Antwort

0

Es scheint unwahrscheinlich zu sein, dass diese bestimmte Abfrage könnte diesen Fehler jemals werfen, also werde ich drei Möglichkeiten vorschlagen. Die erste ist, dass der Code, der den Fehler verursacht sonst eigentlich irgendwo ist und dass:

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

wurde geschnitten und in einen anderen Teil des Codes eingefügt.

Die zweite Möglichkeit ist, dass die Variable "lawersTable" mit etwas Unerwartetem gefüllt wird.

Die dritte Möglichkeit ist, dass meine ersten zwei Szenarien falsch sind. ;-)