2

クライアント側の ejsでは、ejs コードをマークする[% code %]代わりに使用<% code %>しますが、サーバー側でもエクスプレスを使用して同じことを行いたいと考えています。クライアント側では、次のようなことをしますvar template = new EJS({text: template_src, type:'['});

ここに私のノードコードがあります:

app.set('view engine', 'ejs');
app.register('.html', require('ejs'));

app.get('/', function(req, res){
    res.render('index.html', { title: 'My Site' });
});

このオプションを変更できるように、「タイプ」パラメーターをどこに設定しますか

4

3 に答える 3

8

EJS github ページから:

カスタム タグは、グローバルに適用することもできます。

var ejs = require('ejs'); ejs.open = '{{'; ejs.close = '}}';

Express アプリの最初にこれらの行をコピーするだけで、変更がグローバルに適用されます (開始タグと終了タグを必要なものに変更します)。

2016 年 7 月 20 日時点の最新バージョンの更新

EJS の最新バージョンでは、カスタム タグを使用できなくなりました ( https://github.com/mde/ejs/issues/55を参照)。できることは、区切り文字をデフォルト%から他のものに変更することだけです (delimiterオプション)。これを再び有効にすることについての話があります。https://github.com/mde/ejs/issues/88およびhttps://github.com/mde/ejs/issues/115を参照してください。

于 2011-11-05T16:35:14.020 に答える
6

エクスプレスを使用する場合:

app.set('view options', {
    open: '{{',
    close: '}}'
});
于 2011-11-20T14:44:14.677 に答える
1

ejs v2.*では別のオプションを使用します。

var ejs = require('ejs'),
users = ['geddy', 'neil', 'alex'];

// Just one template
ejs.render('<?= users.join(" | "); ?>', {users: users},
    {delimiter: '?'});
// => 'geddy | neil | alex'

// Or globally
ejs.delimiter = '$';
ejs.render('<$= users.join(" | "); $>', {users: users});
// => 'geddy | neil | alex'

<and>文字を置き換えることはできません。

于 2016-02-24T07:59:29.877 に答える