Je ne connais pas très bien l'interface node.js PostgreSQL mais je pense voir le problème. Il s'agit d'un littéral de chaîne SQL contenant un espace réservé numéroté :
'%$1%'
Le $1
à l'intérieur de cette chaîne ne sera pas remplacée par la valeur de tag
parce que les espaces réservés à l'intérieur des chaînes ne sont pas du tout des espaces réservés, ce sont juste des sous-chaînes qui ont la même forme qu'un espace réservé.
Les deux options habituelles sont :
- Ajouter le
%
caractères génériques dans le code client. - Concaténer le
%
des caractères génériques sur les chaînes à l'intérieur de la base de données.
Le premier ressemblerait à ceci :
db.client.query("SELECT * FROM tags WHERE name LIKE $1", ['%' + tag + '%'], ...
et le second comme ceci :
db.client.query("SELECT * FROM tags WHERE name LIKE '%' || $1 || '%'", [tag], ...
Utilisez l'approche que vous préférez.