我刚刚安装了moment.js ;现在我想在我的 Jade 模板中访问 moment
。示例:
.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")
明确地说,我希望在服务器端格式化日期,然后作为呈现的字符串发送到客户端。
那么如何在 Jade 模板中提供 JavaScript 库?
我可能应该注意到我正在将它与 Express 一起使用:
var server = express.createServer();
server.configure(function () {
server.set('view engine', 'jade');
是否有一些我必须以某种方式传递的选项来告诉它要包含哪些库?
我突然想到这与传入局部变量完全没有区别。例如,
server.get('/', function (req, res) {
res.render('index', {
locals: {
moment: require('moment')
}
});
});
但我不想将它传递给每个 View ;如果我忘记了它,我的应用程序会在主布局中使用时中断。那么如何确保它始终可用?
最佳答案
从 Express 3 或 4 中删除助手。
请使用 app.locals
app.locals.moment = require('moment');
app.locals
对象是一个 JavaScript 对象。添加到它的属性将在应用程序中作为局部变量公开。
所以你可以在任何 View 文件中使用 app.locals
,Jade
或 EJS
;
moment().format('YYYY-MM-DD h:mm:ss');
关于node.js - 如何在 Jade 模板中包含服务器端脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14310056/