node.js - (不)将局部变量传递给 Express (node.js) 中的 Jade 模板

标签 node.js express pug

这是我的场景:我有一个 login.jade 模板,我在其中对用户进行身份验证。在该模板中,我有一些类似的条件:

- if (badLogin)
        div#loginErr
          | <strong>Please try again</strong> |
          | The password or username you entered is incorrect.

- if (loginError)
        div#loginErr
          | <strong>Please try again later</strong> |
          | Our authentication service isn't available at the moment.

在 Express 中,我总是必须声明所有可能在该 Jade 模板中使用的局部变量。否则我会得到:

loginError is not defined

我的观点是,如果在 Jade 模板中我会有 10 个包含局部变量的“if”语句,那么在渲染时我将不得不始终传递这 10 个变量,即使在特定情况下我只使用一个也是如此。

我只是想,如果我不将任何变量传递给 Jade 模板,“if(var)”的结果将只是“false”。

是否有机会解决这个问题?

最佳答案

if (typeof loginError !== "undefined")

这允许您检查不存在的变量。

如@GeoffChappel 所述,我已经 adressed this earlier

不过,我确实改变了他们如何处理注入(inject)局部变量的想法。我认为他们使用适当的解析器或动态创建新函数。

关于node.js - (不)将局部变量传递给 Express (node.js) 中的 Jade 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6076769/

相关文章:

javascript - 在 node.js 中编写 while 循环

javascript - 错误 : JSON Parse error: Property name must be a string literal when using angular translate

node.js - 无法读取未定义的 Express 中间件的 'get' 属性

express - NGINX server_name 不工作 2

node.js - Firebase + gcloud 存储 + Nodejs。访问被拒绝错误

node.js - 如何使用 json-masker 对包含 "-"的字段屏蔽 json?

jQuery POST 总是失败

javascript - Jade View 中的控制台对象

node.js - expressJs 标题变量声明的默认值

javascript - Pug (Jade) 动态添加内联属性