如何在Jade模板中包含服务器端脚本?
我刚安装了moment.js ; 现在我想访问我的Jade模板。 例:
.main-content .container .access-details.clearfix .left div Logged in: <b>#{user.name}</b> div Access Lvl: #{user.accessLevel} .right div= moment().format("dddd, MMMM Do YYYY, h:mm:ss a")
为了清楚起见,我希望将date格式化为服务器端,然后作为呈现的string发送给客户端。
那么如何在Jade模板中创build一个JavaScript库?
我可能应该注意到,我正在使用Express:
var server = express.createServer(); server.configure(function () { server.set('view engine', 'jade');
是否有一些选项,我不得不通过它来告诉它包含哪些库?
刚刚发生在我身上,这是绝对没有比传入局部variables不同。 例如,
server.get('/', function (req, res) { res.render('index', { locals: { moment: require('moment') } }); });
但是我不想把这个看成是每一个观点。 如果我忘了它,我的应用程序会因为在主布局中使用而中断。 那么如何确保它始终可用?
快递3或4中删除帮助者。
请使用app.locals
app.locals.moment = require('moment');
app.locals
对象是一个JavaScript对象。 添加到它的属性将在应用程序中作为局部variables显示。
所以你可以在任何视图文件, Jade
或EJS
使用app.locals
;
moment().format('YYYY-MM-DD h:mm:ss');
这个答案让我指出了正确的方向,尽pipedynamicHelpers
的文档似乎已经神秘地从Express文档中消失了。
此外,我不需要一个dynamic的帮手,只是一个静态的(无法访问请求/响应)。 所以我在黑暗中刺了一刀:
server.helpers({ moment: require('moment') });
奇迹般有效! 现在我的所有观点都可以得到。