与车把相比,如何防止EJS中的已定义/未定义错误?

时间:2018-07-02 21:36:05

标签: node.js handlebars.js sails.js ejs

在车把中,您可以编写这样的代码

R.id.customer

您将不会收到任何错误。如果对象不存在,它将不打印任何内容并继续前进,与所有属性相同。因此,这对于可能存在或不存在对象的快速开发和无计划的数据库非常有用。该对象可能未定义,如果已定义,则该属性可能未定义。但是道德是,如果出了什么问题,它只会打印任何内容并继续前进。

我喜欢EJS,因为您可以更好地控制代码,并且在编写不需要助手的快速逻辑时更简单。

但是,当您想引用某些内容时,容易出现很多错误。因此,例如,与上面的代码等效的就是这个。

{{ object.world.entity.person.level}}

如您所见,第二个代码的可读性要差得多,而且令人难以置信的烦人,尤其是当您试图获得相同的结果时。

我的问题是,有没有办法防止这种错误?我知道您可以创建一个助手并执行诸如此类的操作。

<% if (typeof(object) !== 'undefined' &&  object.world && object.world.entity && object.world.entity.person && object.world.entity.person.level) { %>
    <%= object.world.entity.person.level %>
<% } %>

但是,当您要编写快速代码时,即使这样也很麻烦。所以有什么办法可以做诸如

<%if (typeof(object) !== 'undefined' && 
helper.isDefined(object.world.entity.person.level)) {
    <%= object.world.entity.person.level %>
<% } %>

我正在使用Sails.JS框架的当前框架

0 个答案:

没有答案