Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where to access and store EJS Helpers - SailsJS

Well,

SailJS's default templateing engine is EJS (Embedded Javascript)

But I cannot seem to find the place where we can create our own helpers and stuff.

So, do you know where to access & store EJS helpers/stuff?

like image 512
iConnor Avatar asked Jan 11 '14 15:01

iConnor


2 Answers

solved: https://github.com/balderdashy/sails/issues/2162#issuecomment-55866731

config/http.js

module.exports.http = {
  // ...
  locals: {
    filters: {
      formatDate: function(date) { }
    }
  }
}

config/bootstrap.js

_.extend(sails.hooks.http.app.locals, sails.config.http.locals);

At some view...

views/test.ejs

<%=: created | formatDate %>
like image 154
Marcelo Boeira Avatar answered Oct 04 '22 05:10

Marcelo Boeira


You should create file in ./config with name anyname.js and write some EJS helper like these code:

var moment = require('moment');
var ejs = require('ejs');

ejs.filters.fromNow = function(date){
  return moment(date).fromNow()
}
ejs.filters.formatDate = function(date){
  return moment(date).format('MMM Do YYYY');
}
ejs.open = '<?';
ejs.close = '?>';

Then in layout, view, it should be call

<td><?=: post.createdAt | formatDate ?></td>

Hope that help!

Update

For some reasons, you guys have to install module sails locally to make sense. So just paste to your console:

npm i sails

regards,

Anh Nguyen

like image 35
anhnt Avatar answered Oct 04 '22 05:10

anhnt