Nodejs expressテンプレートエンジンejsの使用

3878 ワード

node ejsはexpressテンプレート解析エンジンであり、htmlテンプレートを解析して対応するhtmlを生成する解析器である.文法はphpと似ていて、文法は直感的です.一方、expressのデフォルトのテンプレートエンジンjadeは文法が変で、慣れていない感じがします.tabとスペースの位置合わせに特に注意する必要があります.jadeのテンプレートページは、不可解な解析エラーが発生しないように統一されたものを使用することが望ましいです.
ejsの使用は比較的容易と言え、最初は接触したときにどのように手をつけるべきか分からないかもしれませんが、実はejsでは「javascriptコードを直接作成し、javascriptの様々な原生関数を使用することができます.同時にexpressのresponse.render関数から伝達される変数も直接使用できます.
例:
   
         this is a link!
   

次のように生成されます.
  
   this is a link!
   this is a link!
   this is a link!
   this is a link!

次のようになります.
    
    
            


または
   
         


次のように解析されます.
  
    

title name

this is a test content!

title name

this is a test content!

ejsの特性:
1、キャッシュ機能は、すでに解析したhtmlテンプレートをキャッシュすることができる.
2、javascriptコードを実行するために使用される.
3、>codeをhtml変換します.
4、転義は行わない.
5、カスタムラベルをサポートします.例えば、「'}}」で代用します.
6、テンプレートで使用する補助関数を提供する
7、他のページテンプレートのロードを利用する;
    
使用例
    1、ejs.compile(str, options); 内部解析されたFunction関数が返されます
    2、ejs.render(str, options); 解析された文字列を返す
ここでoptionsのいくつかのパラメータは次のとおりです.
1、cache:解析後のテンプレートをキャッシュするかどうかは、filenameをkeyとする必要がある.
2、filename:テンプレートファイル名;
3、scope:complile後のFunction実行があるコンテキスト環境;
4、debug:debeg状態かどうかを識別し、debugがtrueであれば生成したFunction内容を出力する.
5、compileDebug:debugをコンパイルするかどうかを識別し、trueの場合、デバッグのために解析中の追跡情報を生成します.
6、clientは、ブラウザクライアントの実行に使用するかどうかを識別し、trueの場合、解析後の単独で実行可能なFunction関数を返す.
7、open、コードの先頭マーク、デフォルトは'
8、close、コード終了フラグ、デフォルトは'%>';
9、他のテンプレートを解析するときに提供される変数.
expressで使用する場合、optionsパラメータはresponseによって使用されます.renderは、いくつかのexpressの設定と、ユーザーが提供する変数値を含む転送を行います.
さらにejsはjavascriptコードの代わりに、データの操作をより容易にするための補助関数も提供しています.
1、firstは、配列の最初の要素を返します.
2、last、配列の最後の要素を返します.
3、capitalize、頭文字の大文字の文字列を返します.
4、downcase、文字列の小文字を返します.
5、upcase、文字列の大文字を返します.
6、sort、ソート(Object.create(obj).sort()?);
    7、sort_by:'prop'は、指定したprop属性に従って昇順にソートされます.
8、size、戻り長さ、すなわちlength属性は、必ずしも配列でないとは限らない.
9、plus:n、nを加えると、Numberに変換して演算する.
10、minus:n、nを減算すると、Numberに変換して演算する.
11、times:n、nを乗じ、Numberに変換して演算する.
    12、divided_by:nをnで割ると、Numberに変換して演算します.
13、join:'val'は、配列を'val'で最も区切り、文字列に結合する.
14、truncate:n、前のn文字を切り取り、長さを超えるとコピーが返されます
    15、truncate_words:nは、文字列の前のn個のwordを取得し、wordはスペースで分割する.
16、replace:pattern、substitution、文字列置換、substitutionは一致するサブ列を削除することを提供しない.
17、prepend:val、オペランドが配列であれば合併する.文字列にvalを前に追加します.
18、append:val、オペランドが配列であれば合併する.文字列にvalを追加します.
19、map:'prop'は、オブジェクト配列の属性がpropの値からなる配列を返す.
20、reverse、配列または文字列を反転する.
21、get:'prop'、取得属性が'prop'の値;
22、json、json形式文字列に変換
次の例を示します.
    var str = 'this is a test';
    var arr = [{name:'c'}, {name:'b'}, {name:'a'}];
      => 'this is'
     => 'a,b,c'
     => [1, {name:'c'}, {name:'b'}, {name:'a'}];