Non conosco molto bene l'interfaccia node.js PostgreSQL, ma penso di poter vedere il problema. Questa è una stringa SQL letterale che contiene un segnaposto numerato:
'%$1%'
Il $1
all'interno di quella stringa non verrà sostituita con il valore di tag
poiché i segnaposto all'interno delle stringhe non sono affatto segnaposto, sono solo sottostringhe che hanno la stessa forma di un segnaposto.
Le due solite opzioni sono:
- Aggiungi il
%
caratteri jolly nel codice client. - Concatena il
%
caratteri jolly nelle stringhe all'interno del database.
Il primo sarebbe simile a questo:
db.client.query("SELECT * FROM tags WHERE name LIKE $1", ['%' + tag + '%'], ...
e il secondo così:
db.client.query("SELECT * FROM tags WHERE name LIKE '%' || $1 || '%'", [tag], ...
Usa l'approccio che preferisci.