Как показать html-тег из базы данных

#javascript #mongodb #express #mongoose #ejs

Вопрос:

У меня есть данные в базе данных (MongoDB), как это "name": "My name","desc": "<p>some description</p>rn"

и когда я хочу показать в файле ejs код, подобный этому <h2><%= pd.name %></h2> <%= pd.desc %> , и он отобразится

Мое имя <p>некоторое описание<p></p>

Я попытался проверить элемент, который он показывает.. «<p>некоторое описание<p></p>»</p> как превратить str в html-тег

Комментарии:

1. Хотя я понятия не имею, как это сделать в ejs, концепция, с которой вы здесь имеете дело, называется «экранирование html-сущностей». Это мера безопасности, предназначенная для предотвращения инъекционных атак. Вы можете попробовать поискать в Google способ сообщить ejs, чтобы он отображал строку без экранирования. Но обратите внимание, что вам следует это делать только в том случае, если вы уверены, что там не будет вредоносной разметки (например, вы создаете весь контент, в этом поле не хранится пользовательский ввод).

Ответ №1:

Используйте <%- вместо <%= . Например,

 <%- pd.desc %>
 

Вы также можете проверить другие варианты тегов в Ejs.