【问题标题】:How to access the ejs object in express.js如何访问 express.js 中的 ejs 对象
【发布时间】:2012-02-03 14:57:49
【问题描述】:

我在 ejs 中使用 express(node.js 的 web 框架)。现在我想创建自己的过滤器,如ejs github page 所述:

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

【问题讨论】:

    标签: node.js ejs express


    【解决方案1】:

    您需要在您的应用程序中要求 ejs 并在其上设置一个自定义过滤器,这将对您的 Express 应用程序可见。另请注意您如何在视图中使用 ejs 过滤器<%=: 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(位于 /views)

    <%=: data | my_custom_filter %>
    

    直接从github下载代码:http://github.com/alessioalex/ejs_filters

    更多信息结帐:https://github.com/visionmedia/ejs

    【讨论】:

    • 太好了,谢谢!我主要错过了require('ejs')&lt;%= 的冒号。
    • 很高兴为您提供帮助,别忘了您也可以接受答案(除了投票)。
    • 是否可以使用带有块的过滤器?
    猜你喜欢
    • 2018-08-03
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 2013-01-17
    • 2022-01-25
    • 2020-12-08
    • 2019-02-20
    • 1970-01-01
    相关资源
    最近更新 更多