PHP die() 的 EJS 替代品

EJS alternative to PHP die()

我只想知道是否有办法在 EJS 视图中复制此 PHP 代码:

<?php
  // ...
  if ($something) {
    echo 'something is true';
    die;
  }
  // Now I can continue with my code without being in "else" clause.

我觉得有一个非常简单的解决方案,但我似乎找不到它。

提前致谢。

没有 JavaScript,因此没有 EJS 等同于 PHP 的 exit() or its alias die()。 PHP 文档中这两个 PHP 函数的用途:

Output a message and terminate the current script

无法在 JavaScript 中“终止当前脚本”。 JavaScript 始终运行到完成,无法阻止。

实现您的目标的另一种方法是使用 includefilename 选项,或者使用 renderFile() 呈现此模板。

<% if (!something) { %>
   <%- include('/notSomethingContent'); %>
<% } else { %>
   <%- include('/somethingContent', {something: something}); %>
<% } %>

这将允许您避免 else 中您“不喜欢”的长缩进模板内容。 :-)

不太确定这是否是个好主意,但在 JavaScript 中最接近所需语法的方法是使用带标签的块:

myLabel: if(true) {
  console.log('before break');
  break myLabel;
  console.log('after break');
}

运行这个例子,可以看到“before break”的日志,但是“after break”没有。

请注意,我不容忍这种模式,中断不会影响标记块之外的任何代码。