2015-03-21 25 views
5

Ho questo codice in un file EJ.Come commentare il codice ejs (nodo JS)

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

Quando io commento in questo modo,

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

ho ancora un errore nella linea 2. Qui è la pila di 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) 

Come posso commentare questo codice ?

+0

Si prega di aggiungere quale errore si sta ricevendo. Ho provato ad aggiungere in ejs e non ricevo alcun errore. –

risposta

6

dice here circa i commenti così

si può commentare come di seguito:

<%# code %> 
-2

Commenta in questo modo non si riceverà alcun errore

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

Questo è un commento HTML, non un commento EJS. Questo commento sarà esposto al sito web. – Stevus

+0

Non ha detto che vuole nascondere questo dal server. stava solo cercando un modo per commentare il codice durante il debug. –

+0

L'OP stava tentando di commentare un blocco di codice che includeva un errore di sintassi EJS, tuttavia OP stava usando un commento HTML invece di un commento EJS. Ciò è stato comunque interpretato dal programma di rendering EJS come codice che doveva essere generato, causando il ripetersi dell'errore. Se l'OP avesse usato un commento EJS, il renderer EJS avrebbe ignorato il testo all'interno di quel commento e l'errore non sarebbe stato gettato. – Stevus

8

Ci sono due soluzioni :

  • <%# comment %> (è da documentation)
  • <%/* comment */%> (funziona troppo ma è piuttosto brutto e scomodo per l'uso)

non vedo differenza tra questi esempi, tranne l'evidenziazione della sintassi in IDE (esempio con staffe IDE)

enter image description here

2

ho trovato questo utile per me. È semplice, multilinea e non è in conflitto con nulla.

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

Questo è brutto ma funziona:

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

Campione del formato <% /* */ %> per il multi-line.

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