2011-09-06 10 views
9

jadeやejsなどのテンプレートエンジンを必要とせずにExpress(ノード)アプリケーションを作成することは可能ですか?私は大学で大規模な最終年度のプロジェクトを持っています。私はnode、express、socket.io、mongoDB、websocketsを使用します。私はあまりにもテンプレート言語を学ばなければならないことに自分自身を負担したくない!テンプレートエンジンなしでExpressを使用する

デフォルトでは、expressはjade -t、 - テンプレート追加テンプレートサポート(jade | ejs)を使用します。デフォルト=玉

答えて

12

はいそれはそのような玉またはEJS

としてテンプレートエンジンを必要とすることなく、明示的(ノード)アプリケーションを作成することが可能です。ちょうどHTMLを使うことができます。またはEJSだけを使用してください。 EJSはHTMLのスーパーセットです。

あまりにもテンプレート言語を習得する必要はありません。

1日でテンプレート言語を習得できます。それは本当にあなたを助けるつもりです。早くやれよ。価値があります。

+0

あなたは、JavaScriptに関連するものについてはいつも答えを得ています。あなたの答えはいつもポイントと参考になります。ありがとう! – Jack

+1

@JackBrown [あなたはすぐに質問のためにチャットすることができます] – Raynos

+5

私はそれが新しいテンプレート言語を学ぶことではないと思う、私はちょうどテンプレートエンジンを使用すると思いますあなたのhtmlページを台無しにするでしょう。あなたがうまく設計されたhtmlページをたくさん持っているとすれば、それらを完全に新しいテンプレートフォーマットに変換しなければならないということは悪いことです。 – silent

3

他のテンプレート言語の学習を避けたい場合は、アンダースコアテンプレートを試してみてください。彼らはちょうどあなたがとにかく学習するつもりですジャバスクリプトです。

documentcloud.github.com/underscore/#template

あなたはでそれを設定することができます。これを行うには

app.register('.html', { 
    compile: function(str, options){ 
     var compiled = require('underscore').template(str); 
     return function(locals) { 
      return compiled(locals); 
     }; 
    } 
}); 
1

最も簡単な方法は、デフォルトのapp.get(「/」)...以下の行を置き換えることであろう。 そして、すべての魔法をindex.htmlに入れてください。これは、少なくとも1ページのアプリケーションでは非常にうまくいくでしょう。

app.set('views', path.join(*__dirname*, 'views')) 
app.set('view engine', 'ejs'); // template engine 
app.engine('html', require('ejs').renderFile); // turn engine to use html 

注:今、次の

app.get('/', function(request, response) { 
var readFile = "index.html"; 
var fileContents = fs.readFileSync(readFile); 

response.send(fileContents.toString()); 
}); 
1

最良の選択肢と

は受け入れ、HTMLをレンダリングするためにEJS(エンジン)を使用し、それを構成することですべてのあなたの意見やテンプレートを持っています.html拡張子。

関連する問題