web-dev-qa-db-ja.com

ejsコードのコメント方法(JSノード)

私はこのコードをejsファイルに持っています。

<table>
<% for(var i=0; i < data.length; i++) { %>
   <tr>
     <td><%= data[i].id %></td>
     <td><%= data[i].name %></td>
   </tr>
<% } %>
</table>

このようにコメントすると、

<!-- <table> -->
<!-- <% for(var i=0; i < data.length; i++) { %> -->
<!--    <tr> -->
<!--      <td><%= data[i].id %></td> -->
<!--      <td><%= data[i].name %></td> -->
<!--    </tr> -->
<!-- <% } %> -->
<!-- </table> -->

2行目にまだエラーがあります。これがエラーのスタックです。

ReferenceError: c:\Users\toumi\Desktop\workspaces\Eclipse\ToDoList\views\x.ejs:2
   1| <!-- <table> --> 
>> 2| <!-- <% for(var i=0; i < data.length; i++) { %> --> 
   3| <!--    <tr> --> 
   4| <!--      <td><%= data[i].id %></td> --> 
   5| <!--      <td><%= data[i].name %></td> --> 

data is not defined
   at eval (eval at <anonymous> (c:\Users\toumi\Desktop\workspaces\Eclipse\ToDoList\node_modules\ejs\lib\ejs.js:455:12), <anonymous>:11:25)
   at c:\Users\toumi\Desktop\workspaces\Eclipse\ToDoList\node_modules\ejs\lib\ejs.js:482:14
   at View.exports.renderFile [as engine] (c:\Users\toumi\Desktop\workspaces\Eclipse\ToDoList\node_modules\ejs\lib\ejs.js:348:31)
   at View.render (c:\Users\toumi\Desktop\workspaces\Eclipse\ToDoList\node_modules\express\lib\view.js:93:8)
   at EventEmitter.app.render (c:\Users\toumi\Desktop\workspaces\Eclipse\ToDoList\node_modules\express\lib\application.js:566:10)
   at ServerResponse.res.render (c:\Users\toumi\Desktop\workspaces\Eclipse\ToDoList\node_modules\express\lib\response.js:938:7)
   at c:\Users\toumi\Desktop\workspaces\Eclipse\ToDoList\todoList.js:13:6
   at Layer.handle [as handle_request] (c:\Users\toumi\Desktop\workspaces\Eclipse\ToDoList\node_modules\express\lib\router\layer.js:82:5)
   at next (c:\Users\toumi\Desktop\workspaces\Eclipse\ToDoList\node_modules\express\lib\router\route.js:110:13)
   at Route.dispatch (c:\Users\toumi\Desktop\workspaces\Eclipse\ToDoList\node_modules\express\lib\router\route.js:91:3)

このコードにコメントするにはどうすればよいですか?

13
Toumi

2つの解決策があります:

  • <%# comment %>(それは ドキュメント からです)
  • <%/* comment */%>(それも機能しますが、かなり醜くて使いにくいです)

IDE(ブラケット付きの例IDE)の構文を強調表示する以外は、これらの例の間に違いはありません。

enter image description here

23
Artem Solovev

複数行の<% /* */ %>形式のサンプル。

<% /* %>
<div>
    <span>This will not be rendered</span>
    <% for(var i=0; i < data.length; i++) { %>
      <span>These won't be rendered either.</span>
    <% } %>
</div>
<% */ %>
18
Quang Van

コメントについても ここ と書いてあります

あなたは以下のようにコメントすることができます:

 <%# code %>
7
A.B

これは私にとって役に立ちました。シンプルで複数行で、何とも競合しません。

    <%if(false) {%>  
        <ul>
        <% for(var i =1; i <= 10; i++) { %>
            <li>
                Hello this is iteraiton <%=i %>
            </li>
        <% }%>
        </ul>
        <%- include('./meow') %> 
    <%} %>
4
Liam Kernighan

これは醜いですが、機能します:

<%if (false) {%>
<div>
    <span>This will not be rendered</span>  
</div>
<%}%>
3
Ronen

あなたができる2つの方法!

EJSのドキュメントに記載されているように。

<%#コメントアウトされたコード%>

<%/ *複数行のコメントアウトコード* /%>

例えば:

<%# include('includes/head.ejs') %>
</head>

<body>
    <%# include('includes/navigation.ejs') %>
    <h1>Page Not Found!</h1>

<%- include('includes/end.ejs') %>
3
Abhishek Gautam