2012-01-05 37 views
5

ejsでexpress(web.js用のWebフレームワーク)を使用しています。今私はejs github page上で説明したように私自身のフィルタを作成したいと思います:express.jsでejsオブジェクトにアクセスする方法

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を必要とし、その上にカスタムフィルタを設定する必要が

ReferenceError: ejs is not defined 

答えて

10

は以下となります。

ejs.filters.myfilter = function (obj) { 
    .... 
} 

私にエラーを与えますExpressアプリケーションで表示されます。また、ビュー内でejsフィルタを使用する方法にも注意してください。<%=: data_to_be_filtered | your_filter %>

例の適用:

app.js(IN /ビュー位置)

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

+0

ありがとうございます!私は 'require( 'ejs')'と '<%='にコロンを主に欠いていました。 – topskip

+0

お手伝いしてうれしいですが、あなたも(投票以外に)答えを受け入れることができることを忘れないでください。 – alessioalex

+0

ブロックでフィルタを使用することは可能ですか? <%block( 'title'、所有者| filter_here)%> – chovy

関連する問題