Представь: твой бот начинает спамить пользователю каждый час, хотя в коде есть проверки на дедупликацию и суточные лимиты. Обе защиты написаны, покрыты условиями и лежат в коде месяц — но ни разу не сработали.
Проблема оказалась в семантике String.prototype.replace: в JavaScript знак $ — служебный символ для подстановок. Когда Postgres-запрос с долларовыми кавычками $$meta$$ проходил через JS-шаблонную замену, символы $ интерпретировались как команды, а не как часть строки.
Отличный пример того, как знание особенностей языка может спасти от неочевидных багов в продакшене
🔥Ссылка на статью
Заметки Бэкендера & Max
