How would you check for undefined property in ejs for node.js? How would you check for undefined property in ejs for node.js? javascript javascript

How would you check for undefined property in ejs for node.js?


Another way to test for a property is to reference it indirectly via the locals object. Using your example:

var tpl = '<% if(locals.foo){ %>foo defined<% }else{ %>foo undefined<% } %>';console.log(ejs.render(tpl, { locals: { bar: "baz"} }));


I would use typeof, as in if (typeof foo == 'undefined'). I use the typeof operator with the string "undefined", whereas some people might do a direct comparison with the undefined global variable. I prefer this method because it is protected against some terrorist JS library developer changing the value of the global variable, leaving your code broken.

This could also be expressed as a ternary, which some view as "cleaner" due to the absence of curlies:

var tpl = '<% (typeof foo != "undefined" ? %>foo defined<% : %>foo undefined<% ) %>';


Simplest, and cleanest in my opinion:

<%= (!!locals.foo)?foo:'' %>