私はこのコードを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)
このコードにコメントするにはどうすればよいですか?
2つの解決策があります:
<%# comment %>
(それは ドキュメント からです)<%/* comment */%>
(それも機能しますが、かなり醜くて使いにくいです)IDE(ブラケット付きの例IDE)の構文を強調表示する以外は、これらの例の間に違いはありません。
複数行の<% /* */ %>
形式のサンプル。
<% /* %>
<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>
<% */ %>
これは私にとって役に立ちました。シンプルで複数行で、何とも競合しません。
<%if(false) {%>
<ul>
<% for(var i =1; i <= 10; i++) { %>
<li>
Hello this is iteraiton <%=i %>
</li>
<% }%>
</ul>
<%- include('./meow') %>
<%} %>
これは醜いですが、機能します:
<%if (false) {%>
<div>
<span>This will not be rendered</span>
</div>
<%}%>
あなたができる2つの方法!
EJSのドキュメントに記載されているように。
<%#コメントアウトされたコード%>
<%/ *複数行のコメントアウトコード* /%>
例えば:
<%# include('includes/head.ejs') %>
</head>
<body>
<%# include('includes/navigation.ejs') %>
<h1>Page Not Found!</h1>
<%- include('includes/end.ejs') %>