2016-10-12 12 views
0

私は、PROJ_ABOUTTEXTのカラムを持つMySQLテーブルを持っています。mysqlテキストタイプからejsへの改行を表示

私はこのコラムに複数の行を挿入し、今私はEJSエンジンを使用して、私のExpress.jsアプリでこのエントリをdiplayしようとしています。

<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のための答えを見ましたが、私はEJSがエンジンをテンプレート化し、私はJSを使用して解決策を探していますとのNode.jsを使用しています。

答えて

0

エスケープされていないHTMLをレンダリングするには、適切なEJS構文を使用する必要があります。そうしないと、エスケープされた文字列が取得されます。

短い答えは次のようになります。

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

この

0

<%= %>の代わりにこのEJSタグ<%- %>を試してください。最初のEJSタグ HTMLをエスケープしません。

だからあなたは(サーバー側)nl2brパッケージを使用することができ、あなたのテキストに<br>\nのように終わる行を変更するには<br><%- rows.PROJ_ABOUT %>

を使用してテキストを折り返します。

+0

それがうまくいったのですが、もしnl2brを使用するのであれば、どこに入れますか? –

+0

私は自分のプロジェクトにインストールし、ルーティングページにrequire文を作成してから、すでにejsテンプレートで動作するのでしょうか? –

+0

おっと!いいえ、サーバー側で 'nl2br()'を呼び出す必要があります。それは私のせいだよ – fremail

0

使用エスケープされていないHTMLとしてあなたrows.PROJ_ABOUT変数をレンダリングします。この

私はちょうどタグをBRために\ nを変更するように私は他のソリューションを使用
<p><%- rows.PROJ_ABOUT %></p> 
関連する問題