Nodejs EJS helper functions?

Farzher picture Farzher · Nov 4, 2012 · Viewed 19.9k times · Source

Is there a way to register helper functions to EJS templates, so that they can be called from any EJS template? So, it should work something like this.

app.js

ejs.helpers.sayHi = function(name) {
    return 'Hello ' + name;
});

index.ejs

<%= sayHi('Bob') %>

Answer

dylanized picture dylanized · Apr 19, 2013

Yes, in Express 3 you can add helpers to app.locals. Ex:

app.locals.somevar = "hello world";

app.locals.someHelper = function(name) {
  return ("hello " + name);
}

These would be accessible inside your views like this:

<% somevar %>

<% someHelper('world') %>

Note: Express 2.5 did helpers differently.