我有MySQL表列PROJ_ABOUT这是类型TEXT。
我在这列中插入了多行,现在我试图使用ejs引擎在我的Express.js应用程序中显示此条目。
<h2>About project</h2>
<p><%= rows.PROJ_ABOUT %></p>
但是,当文本插入到ejs文件中时,所有的换行符都丢失了。
**Instead of this:**
Line 1
Line 2
**I get this:**
Line1Line2
我试图通过使用<br />
而不是'n'
保存数据库条目来解决这个问题,但不是获得换行符,而是获得带有br标记的文本,写入普通文本。
**So i got this:**
Line1<br />Line2
现在,我看到了PHP的答案,但我正在使用Node.js与ejs模板引擎,我正在寻找使用JS的解决方案。
您需要使用适当的EJS语法来呈现未转义的HTML,否则您将得到转义的字符串。
简短的回答是:
<!-- V You should use - instead of = -->
<p> <%- rows.PROJ_ABOUT %></p>
这将使您的rows.PROJ_ABOUT
变量为未转义的HTML
试试这个EJS标签<%- %>
而不是<%= %>
。第一个EJS标签不会转义HTML。
用<br>
到<%- rows.PROJ_ABOUT %>
来换行
要更改文本中的行结束,如n
到<br>
,您可以使用nl2br包(在服务器端)。
使用
<p><%- rows.PROJ_ABOUT %></p>