显示从 mysql 文本类型到 ejs 的换行符

Display line break from mysql text type to ejs

我有 MySQL table 列 PROJ_ABOUT 类型为 TEXT.

我在此列中插入了多行,现在我正尝试使用 ejs[=30= 在我的 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 标签 <%- %> 而不是 <%= %>。第一个 EJS 标签 不会 转义 HTML.

所以只需用 <br><%- rows.PROJ_ABOUT %>

将您的文本换行

要在您的文本中将 \n 之类的行结束更改为 <br>,您可以使用 nl2br 程序包(在服务器端)。

您需要使用正确的 EJS 语法来呈现未转义的 HTML,否则您将得到转义的字符串。

简短的回答是:

<!--    V You should use - instead of = -->
<p>   <%- rows.PROJ_ABOUT %></p> 

这会将您的 rows.PROJ_ABOUT 变量呈现为未转义 HTML

使用这个

<p><%- rows.PROJ_ABOUT %></p>