Reputation: 1273
I have MySQL table with column PROJ_ABOUT which is type TEXT.
I inserted multiple rows into this column and now I am trying to diplay this entry in my Express.js app using ejs engine.
<h2>About project</h2>
<p><%= rows.PROJ_ABOUT %></p>
However, when the text is inserted into ejs file, all line breaks are lost.
**Instead of this:**
Line 1
Line 2
**I get this:**
Line1Line2
I tried getting around this by saving entry to database with <br />
instead of '\n'
but instead of getting line breaks I got text with br tags written as common text.
**So i got this:**
Line1<br />Line2
Now, I saw the answers for PHP, but i am using Node.js with ejs templating engine and I am looking for a solution using JS.
Upvotes: 0
Views: 4941
Reputation: 330
Try this EJS tag <%- %>
instead of <%= %>
. The first EJS tag will not escape HTML.
So just wrap your text with <br>
to <%- rows.PROJ_ABOUT %>
To change line ends like \n
to <br>
in your text you can use nl2br package (on server-side).
Upvotes: 1
Reputation: 19591
You need to use the proper EJS syntax for rendering unescaped HTML, otherwise you will get the escaped strings.
Short answer would be :
<!-- V You should use - instead of = -->
<p> <%- rows.PROJ_ABOUT %></p>
this will render your rows.PROJ_ABOUT
variable as unescaped HTML
Upvotes: 3