У меня есть HTML-шаблоны электронной почты, хранящиеся в базе данных MySQL. Большинство из них включают переменные JavaScript. Я попытался сохранить их, используя литералы шаблонов (например: ${this.auth.user.name}), но это вернет не переменную, а точную строку. Я предполагаю, что моя проблема в том, что строка заключена в двойные или одинарные кавычки, а не в обратные кавычки.
Итак, мой JavaScript выглядит следующим образом, где template — это массив объектов, запрошенных из моего MySQL-шоу здесь.
var email_template: this.template[0].body;
The actual output is Hello ${this.auth.name}!
Я ожидаю выхода Hello Jack!
У вас есть идеи, в чем может быть проблема?
Заранее спасибо, Тибор



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуйте сделать new Function вот так:
const name = "Jack";
const string = "Hello ${name}";
const actualString = new Function("return `" + string + "`").call(string);
console.info(actualString);
Если вы извлекаете что-то из БД, это не литерал шаблона. Пожалуйста, не используйте
new Functionилиeval, иначе вы открываете огромную дыру в безопасности вашего приложения, если только вы сначала не проанализируете и не подтвердите шаблон полностью.