好吧,
SailJS的默认模板引擎是 EJS (嵌入式Javascript )
但我似乎找不到可以创建自己的助手和东西的地方。
那么,你知道在哪里访问&存储 EJS 帮手/东西?
答案 0 :(得分:6)
解决: https://github.com/balderdashy/sails/issues/2162#issuecomment-55866731
配置/ http.js
module.exports.http = {
// ...
locals: {
filters: {
formatDate: function(date) { }
}
}
}
配置/ bootstrap.js
_.extend(sails.hooks.http.app.locals, sails.config.http.locals);
在某些观点......
视图/ test.ejs
<%=: created | formatDate %>
答案 1 :(得分:3)
您应该使用名称anyname.js在./config中创建文件,并像这些代码一样编写一些EJS帮助程序:
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 = '?>';
然后在布局,视图中,应该调用
<td><?=: post.createdAt | formatDate ?></td>
希望有所帮助!
<强>更新强>
出于某些原因,你们必须在本地安装模块风帆才有意义。所以只需粘贴到您的控制台:
npm i sails
的问候,
Anh Nguyen
答案 2 :(得分:2)
实现这一目标的一种方法是通过中间件。类似的东西:
module.exports.routes = {
'*': function mixinForm(req, res, next) {
// <%= form() %>
res.locals.form = function () {
return '<form action=""></form>';
};
next();
},
}
我还建议在https://trello.com/b/cGzNVE0b/sails-js-feature-requests处针对更加整合的方法提出功能请求。