NodeJS отображают HTML в виде текста

#html #node.js

#HTML #node.js

Вопрос:

У меня есть некоторый текст, который включает HTML-теги (пример: «Это <p> тег»). Как мне отобразить этот текст «как есть» без того, чтобы моя страница NodeJS интерпретировала тег как реальный тег « <p></p> «?

Если я использую объекты amp;< и amp;> HTML, объекты не интерпретируются и отображаются следующим образом («Это amp;<pamp;> тег»), чего я не хочу.

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

1. Как бы вы это сделали в HTML?

2. Если вы имеете в виду использование node.js в качестве http-сервера (без какой-либо платформы) по умолчанию используется текстовая печать, но если вы хотите явно установить для нее значение text, вы можете задать тип содержимого. Но я подозреваю, что вы имеете в виду какой-то другой вариант использования, не могли бы вы быть более конкретными?

3. Это строка, которую я показываю, где ‘group.title’ — это переменная, которой присвоен «Это <p> тег». ‘<p class=»title»><a href=»javascript:void(0)» id=»‘ group._id ‘»>’ group.title ‘</a></p>` Я использую express.

4. Попробуйте этот обходной путь, он должен сработать: <code>This is a <p> tag</code> . Эта проблема связана с тем, как express экранирует свои переменные, хотя я думаю, что может быть лучшее решение.

5. Нет. Извините — он все еще интерпретирует <p> тег. Хотя спасибо за идею!

Ответ №1:

Я не знаком с конкретным способом создания HTML-страниц в Node, но если вы используете язык шаблонов, такой как Jade или EJS, вы можете отключить экранирование следующим образом:

В Jade:

 p.title
  a(href='javascript:void(0)' id='#{group._id}') !{group.title}
  

В EJS:

 <p class='title'>
  <a href="javascript:void(0)" id="<%= group._id %>"><%- group.title %></a>
</p>
  

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

1. Это сработало как нельзя лучше — спасибо! Я использую Handlebars, который имеет эквивалентный метод управления экранированием.