Jeg kender ikke node.js PostgreSQL-grænsefladen så godt, men jeg tror, jeg kan se problemet. Dette er en SQL-streng, der indeholder en nummereret pladsholder:
'%$1%'
$1
inde i den streng vil ikke blive erstattet med værdien af tag
fordi pladsholdere inde i strenge slet ikke er pladsholdere, de er bare understrenge, der tilfældigvis har samme form som en pladsholder.
De to sædvanlige muligheder er:
- Tilføj
%
jokertegn i klientkoden. - Sæt
%
sammen jokertegn på strengene inde i databasen.
Den første ville se sådan ud:
db.client.query("SELECT * FROM tags WHERE name LIKE $1", ['%' + tag + '%'], ...
og den anden sådan her:
db.client.query("SELECT * FROM tags WHERE name LIKE '%' || $1 || '%'", [tag], ...
Brug den fremgangsmåde, du foretrækker.