2015-03-21 19 views
5

Mam ten kod w pliku ejs.Jak komentować kod ejs (węzeł JS)

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

Kiedy skomentować to w ten sposób,

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

nadal mam błąd w linii 2. Oto stos błędu:

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) 

Jak mogę skomentować ten kod ?

+0

Proszę podać, jaki błąd otrzymujesz. Próbowałem dodać w ejs i nie otrzymuję żadnego błędu. –

Odpowiedz

6

mówi here o komentarzach oraz

można skomentować jak poniżej:

<%# code %> 
-2

komentarz to tak, że nie otrzyma żadnego błędu

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

To jest komentarz HTML, a nie komentarz EJS. Ten komentarz zostanie ujawniony na stronie internetowej. – Stevus

+0

Nie wspomniał, że chce to ukryć przed serwerem. po prostu szukał sposobu na komentowanie kodu podczas debugowania. –

+0

Program OP próbował skomentować blok kodu zawierający błąd składni EJS, jednak program OP używał komentarza HTML zamiast komentarza EJS. Takie działanie było nadal interpretowane przez renderer EJS jako kod, który należy wygenerować, powodując błąd w dalszym ciągu zgłaszany. Gdyby OP użył zamiast tego komentarza EJS, mechanizm renderujący EJS zignorowałby tekst w tym komentarzu, a błąd nie zostałby zgłoszony. – Stevus

8

Istnieją dwa rozwiązania :

  • <%# comment %> (to z documentation)
  • <%/* comment */%> (działa też, ale to dość brzydki i niewygodny do użytku)

Nie widzę różnicy między tymi przykładami z wyjątkiem podświetlanie składni w IDE (przykład z wsporniki IDE)

enter image description here

2

znalazłem to pomocne dla mnie. Jest prosty, wielowierszowy i nie koliduje z niczym.

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

To jest brzydki, ale to działa:

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

Przykładowy formacie <% /* */ %> dla 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> 
<% */ %>