Jag känner inte till node.js PostgreSQL-gränssnittet så bra men jag tror att jag kan se problemet. Detta är en SQL-sträng som innehåller en numrerad platshållare:
'%$1%'
$1
inuti den strängen kommer inte att ersättas med värdet för tag
eftersom platshållare inuti strängar inte alls är platshållare, de är bara delsträngar som råkar ha samma form som en platshållare.
De två vanliga alternativen är:
- Lägg till
%
jokertecken i klientkoden. - Sätt ihop
%
jokertecken på strängarna i databasen.
Den första skulle se ut så här:
db.client.query("SELECT * FROM tags WHERE name LIKE $1", ['%' + tag + '%'], ...
och den andra så här:
db.client.query("SELECT * FROM tags WHERE name LIKE '%' || $1 || '%'", [tag], ...
Använd vilken metod du föredrar.