2015-03-21 6 views
5

Ich habe diesen Code in einer EJS-Datei.Wie Kommentar EJS-Code (JS-Knoten)

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

Wenn ich es auf diese Weise kommentieren,

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

ich noch einen Fehler in Zeile 2. Hier haben, ist der Stapel der ERROR

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) 

Wie kann ich diesen Code Kommentar ?

+0

Bitte fügen Sie hinzu, welchen Fehler Sie erhalten. Ich habe versucht, in ejs hinzuzufügen und ich erhalte keinen Fehler. –

Antwort

6

es sagt here über die Kommentare als auch

Sie wie unten kommentieren:

<%# code %> 
-2

Kommentar es so werden Sie keine Fehler erhalten

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

Das ist ein HTML-Kommentar, kein EJS-Kommentar. Dieser Kommentar wird auf der Website veröffentlicht. – Stevus

+0

Er hat nicht erwähnt, dass er das vom Server verstecken will. Er war nur auf der Suche nach einer Möglichkeit, Code beim Debuggen zu kommentieren. –

+0

Das OP versuchte, einen Codeblock mit einem EJS-Syntaxfehler zu kommentieren, OP verwendete jedoch einen HTML-Kommentar anstelle eines EJS-Kommentars. Dies wurde vom EJS-Renderer immer noch als Code interpretiert, der generiert werden musste, sodass der Fehler weiterhin ausgegeben wurde. Hätte das OP stattdessen einen EJS-Kommentar verwendet, würde der EJS-Renderer Text innerhalb dieses Kommentars ignorieren und der Fehler würde nicht ausgegeben. – Stevus

8

Es gibt zwei Lösungen :

  • <%# comment %> (es ist von documentation)
  • <%/* comment */%> (es funktioniert auch, aber es ist ziemlich hässlich und unbequem für den Einsatz)

I Unterschied zwischen diesen Beispielen nicht in IDE außer Hervorhebung Syntax (siehe Beispiel mit Klammern IDE)

enter image description here

2

fand ich diese Informationen hilfreich für mich. Es ist einfach, mehrzeilig und widerspricht nichts.

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

Das ist hässlich, aber es funktioniert:

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

Probe des <% /* */ %> Format für mehrzeilige.

<% /* %> 
<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> 
<% */ %>