Не познавам толкова добре интерфейса на node.js PostgreSQL, но мисля, че виждам проблема. Това е SQL низов литерал, който съдържа номериран заместител:
'%$1%'
$1
вътре в този низ няма да бъде заменен със стойността на tag
тъй като контейнерите в низове изобщо не са контейнери, те са просто поднизове, които случайно имат същата форма като контейнер.
Двете обичайни опции са:
- Добавете
%
заместващи символи в клиентския код. - Свържете
%
заместващи символи върху низовете в базата данни.
Първият би изглеждал така:
db.client.query("SELECT * FROM tags WHERE name LIKE $1", ['%' + tag + '%'], ...
а вторият така:
db.client.query("SELECT * FROM tags WHERE name LIKE '%' || $1 || '%'", [tag], ...
Използвайте подхода, който предпочитате.