2016-09-12 5 views
2

NodeJSで私を助けてくれることを期待していました。 Ivは最近、NodeJSを使用して自分のサイトを開発し始めました。NodeJSにはEJSのないヘッダとフッタが含まれています

問題:それは、各セクションのコードを繰り返し減らすようように、ヘッダ、コンテンツ、フッタースタイルマイドキュメントを送信する方法を探して

イム。

私はしかし、参加するための簡単な方法を実装する方法についてはわからないイム、すべての作品をパブリックフォルダにセットアップを持っているので、私はJS、CSSと共通ファイルなどを含めることができます...

self.app.use(express.static(__dirname + '/public')); 

このファイル内容。オンラインで見たすべての情報源は、EJSテンプレートというパッケージを使って "正しい"方法を提案しています。

のでEJSでこの実装に似た何かを探してイム:

<header> 
    <% include ../partials/header %> 
</header> 

<footer> 
    <% include ../partials/footer %> 
</footer> 

しかし、EJSをサポートしていないのホスティングサービスのイムは、それはこのような何かをすることは可能でしょうか?

self.routes['/'] = function(req, res) { 
      res.setHeader('Content-Type', 'text/html'); 
      res.send(self.cache_get('header.html')+self.cache_get('index.html')+self.cache_get('footer.html')); 
     }; 

ヘッダー、コンテンツ、フッターを分離して、動的コンテンツを含むWebサイトを簡単に作成できるもう1つの簡単な方法はありますか?

+1

EJSをサポートしていないとはどういう意味ですか?これは単なるノードモジュールです。他にもたくさんのテンプレートエンジンがあります。私は[doT](http://olado.github.io/doT/index.html)が好きです。 –

+0

私はopenshiftを使用していて、NPMを使用するためにサーバー側のコンソールにアクセスできないので、ノードをnodejsにインストールすることは不明であるようですが、websiteにはpackage.jsonを変更することでノードを含めることができますが、それらは... – D3181

答えて

4

あなたがこれを行うには、独自のJSを書くことができますが、あなたの現在のレベルで、私は(学習や実験目的以外)、それをお勧めしません。これは、あなたが常に車輪を再発明する必要がないので、ノードが非常に強力な理由です。オープンシフトを使用しており、モジュールを使用できないことに注意しました。 ここは間違ったです。

This linkは、npmをopensshiftで使用する方法を説明しています。すべてのnode.jsホスティングサービスがパッケージ統合を許可しないようにするのは非常に馬鹿です。これがどのように動作するかを簡単に説明するには、実質的にローカル環境に--saveフラグを使用してパッケージをインストールします。これにより、ローカルのpackage.jsonファイルが依存関係とバージョンの詳細が更新されます。レポをホストにプッシュすると、このファイルが表示され、依存関係のインストールが自動的に処理されます。

node.jsを引き続き使用する場合は、パッケージ管理についてよくお読みください。 https://docs.npmjs.com/how-npm-works/packages

+0

良い答えと非常に時間を割いていただきありがとうございます。Ivはそれを読んでいて、ファイルには依存関係のセクションがありますが、フォーマットは単純ですが、特定の依存関係のどのバージョン番号が受け入れられるかを見つける方法を述べています.... "express": "〜3.4.4" is知っている現在のバージョンのリストのいくつかの並べ替えがあります..? – D3181

+0

'npm install express -save'のようなものを使うと、自動的に最新の安定版が選択されます。あなたがローカルでダウンロードできるバージョンは、あなたのホスト上で受け入れられるでしょう、それはちょうどより多くのjavascriptです。 –

+1

OKは、すべての助けを借りて感謝しています。@Matt Way – D3181

2

Trumpetこれを行う必要があります。このような何かが動作することがあります。

const trumpet = require('trumpet') 
const tr = trumpet() 

tr.pipe(res) 

const header = tr.select('header').createWriteStream() 
fs.createReadStream('header.html').pipe(header) 

const footer = tr.select('footer').createWriteStream() 
fs.createReadStream('footer.html').pipe(footer) 

fs.createReadStream('index.html').pipe(tr) 
+0

これは、私が一度以上アップヴォートすることができれば、実際にはEJSよりも働きやすくなっています。 – D3181

+0

私はとてもうれしいです! :D – Jekrb

関連する問題