咨询Jade转EJS的转换形式及请求代码转换帮助
嘿,我来帮你搞定Jade转EJS的问题!先梳理下核心转换逻辑,再帮你把那段代码转好~
Jade 转 EJS 的核心转换要点
- 标签写法:Jade的缩进式简写(比如
div.error)要改成EJS的完整HTML标签写法,明确写出属性,比如<div class="error"> - 逻辑代码包裹:Jade里的条件、循环等逻辑,在EJS中需要用
<% %>来包裹,并且要遵循JavaScript的语法(比如添加大括号包裹代码块) - 变量插值:Jade的
#{变量名}要换成EJS的<%= 变量名 %>,用于输出变量内容 - 循环语法:Jade的
each循环对应EJS里的JavaScript原生循环(比如forEach或者for循环)
你的代码转换示例
先看原Jade代码:
div.error if errors each error, i in errors li.alert.alert-danger #{error.msg}
转换后的EJS代码:
<div class="error"> <% if (errors) { %> <% errors.forEach(function(error, i) { %> <li class="alert alert-danger"><%= error.msg %></li> <% }) %> <% } %> </div>
简单解释下转换细节:
- 把
div.error展开成完整的<div class="error">,并补上闭合标签 - 把Jade的
if errors改成EJS的<% if (errors) { %>,用<% %>包裹条件逻辑,同时加上大括号包裹后续代码块 - Jade的
each error, i in errors替换成JavaScript的forEach循环,同样用<% %>包裹循环逻辑 - 把
#{error.msg}换成EJS的<%= error.msg %>,这样就能正确输出错误信息了
内容的提问来源于stack exchange,提问作者Amir Mahmoudi




