如何访问express.js中的ejs对象
我用ejs使用express(node.js的web框架)。 现在我想创build我自己的filter,如ejs github页面所述 :
To add a filter simply add a method to the .filters object: ejs.filters.last = function(obj) { return obj[obj.length - 1]; };
问题: 我如何访问这个ejs对象? 我尝试过(天真地)在app.js中:
ejs.filters.myfilter = function (obj) { .... }
这给了我错误:
ReferenceError: ejs is not defined
您需要在您的应用程序中需要ejs,并在其上设置自定义filter,这将在您的Express应用程序中可见。 另外请注意您在视图中如何使用ejsfilter<%=: data_to_be_filtered | your_filter %>
<%=: data_to_be_filtered | your_filter %>
。
应用示例:
app.js
var app, express = require('express'), ejs = require('ejs'); ejs.filters.my_custom_filter = function(ary) { return ary[ary.length - 1]; }; app = express.createServer(); app.configure(function() { app.set('view options', { layout: false }); app.set('view engine', 'ejs'); }); app.get('/', function(req, res) { res.render('index', { data: [1, 2, 3, 4, 5] }); }); app.listen(8080); console.log('Server started on port 8080');
index.ejs (位于/视图)
<%=: data | my_custom_filter %>
直接从github下载代码: http : //github.com/alessioalex/ejs_filters
更多信息结帐: https : //github.com/visionmedia/ejs