Node.js ejs模板内的开关条件语句分号错误
我试图在ejs模板内切换条件,但出现错误 这是我的密码:Node.js ejs模板内的开关条件语句分号错误,node.js,express,ejs,Node.js,Express,Ejs,我试图在ejs模板内切换条件,但出现错误 这是我的密码: <% switch(check) {%> <% case check == 'like' : %> <button href="#<%=item._id%>" id="like" class="recommendation good open-recommendation-form">
<% switch(check) {%>
<% case check == 'like' : %>
<button href="#<%=item._id%>" id="like" class="recommendation good open-recommendation-form">
<span class="icon-like"></span>
</button>
<button href="#<%=item._id%>" id="dislike" class="recommendation bad hoverable open-recommendation-form">
<span class="icon-dislike"></span>
</button>
<%break%>
<% case check == 'dislike' : %>
<button href="#<%=item._id%>" id="like" class="recommendation good hoverable open-recommendation-form">
<span class="icon-like"></span>
</button>
<button href="#<%=item._id%>" id="dislike" class="recommendation bad open-recommendation-form">
<span class="icon-dislike"></span>
</button>
<%break%>
<% default : %>
<button href="#<%=item._id%>" id="like" class="recommendation good hoverable open-recommendation-form">
<span class="icon-like"></span>
</button>
<button href="#<%=item._id%>" id="dislike" class="recommendation bad hoverable open-recommendation-form">
<span class="icon-dislike"></span>
</button>
<%break%>
<%} %>
我得到的错误是:
SyntaxError:意外标记“;”编译ejs时,在/Users/ismail/Desktop/expressjsblank/views/dashboard/purchases.ejs中
如果上述错误没有帮助,您可能需要尝试EJS Lint:
https://github.com/RyanZim/EJS-Lint
或者,如果要创建异步函数,请将'async:true'作为选项传递。
在新函数()处
在Template.compile(/Users/ismail/Desktop/expressjsblank/node_modules/ejs/lib/ejs.js:632:12)
在Object.compile(/Users/ismail/Desktop/expressjsblank/node_modules/ejs/lib/ejs.js:368:16)
在handleCache(/Users/ismail/Desktop/expressjsblank/node_modules/ejs/lib/ejs.js:216:18)
在tryHandleCache(/Users/ismail/Desktop/expressjsblank/node_modules/ejs/lib/ejs.js:255:16)
在View.exports.renderFile[作为引擎](/Users/ismail/Desktop/expressjsblank/node_modules/ejs/lib/ejs.js:461:10)
在View.render(/Users/ismail/Desktop/expressjsblank/node_modules/express/lib/View.js:135:8)
在tryRender(/Users/ismail/Desktop/expressjsblank/node_modules/express/lib/application.js:640:10)
在Function.render(/Users/ismail/Desktop/expressjsblank/node_modules/express/lib/application.js:592:3)
在ServerResponse.render(/Users/ismail/Desktop/expressjsblank/node_modules/express/lib/response.js:1012:7)
将开关/case
语句更改为以下应该可以解决问题(简化版,只有一个案例
):
将
switch/case
语句更改为以下内容应该可以解决问题(简化版,只有一个case
):
您共享的代码与您收到的错误无关。错误中提到的符号不在您的代码中。您共享的代码与您收到的错误无关。错误中提到的符号不在代码中的任何地方。我已将其更改为if条件,它工作得很好,这当然是另一种方法。用if语句作为答案发布您的解决方案,接受我的答案或删除您的问题。谢谢:)@eol你能解释一下为什么你的答案有效,而不是作者写的上面的答案吗?我已经把它改成了if条件,而且效果很好,这当然是另一种方法。用if语句作为答案发布您的解决方案,接受我的答案或删除您的问题。谢谢:)@eol你能解释一下为什么你的答案有效,而不是作者写的上述内容吗?
If the above error is not helpful, you may want to try EJS-Lint:
https://github.com/RyanZim/EJS-Lint
Or, if you meant to create an async function, pass `async: true` as an option.
at new Function (<anonymous>)
at Template.compile (/Users/ismail/Desktop/expressjs-blank/node_modules/ejs/lib/ejs.js:632:12)
at Object.compile (/Users/ismail/Desktop/expressjs-blank/node_modules/ejs/lib/ejs.js:368:16)
at handleCache (/Users/ismail/Desktop/expressjs-blank/node_modules/ejs/lib/ejs.js:216:18)
at tryHandleCache (/Users/ismail/Desktop/expressjs-blank/node_modules/ejs/lib/ejs.js:255:16)
at View.exports.renderFile [as engine] (/Users/ismail/Desktop/expressjs-blank/node_modules/ejs/lib/ejs.js:461:10)
at View.render (/Users/ismail/Desktop/expressjs-blank/node_modules/express/lib/view.js:135:8)
at tryRender (/Users/ismail/Desktop/expressjs-blank/node_modules/express/lib/application.js:640:10)
at Function.render (/Users/ismail/Desktop/expressjs-blank/node_modules/express/lib/application.js:592:3)
at ServerResponse.render (/Users/ismail/Desktop/expressjs-blank/node_modules/express/lib/response.js:1012:7)
<% switch(check) {
case 'like' : %>
<button href="#<%= item._id %>" id="like" class="recommendation good open-recommendation-form">
<span class="icon-like">TEST</span>
</button>
<% break;
}
%>
res.render('name-of-ejs-template', {item: {_id: "https://www.stackoverflow.com"}, check: 'like'});