2017-05-31 9 views
0

私は、HTMLページを構築するためにサーバー側のレンダリングに使用される部分的なビューと、UIで部分的な更新を行うためにFrontEndにも使用します。私はサーバー側とFrontEndの両方で同じ部分ビューファイルを使用したいので、私はこのファイルを両者で共有するための最良の方法を探していました。今のFrontEndで同じビューを使用してサーバー側のレンダリングを表現するにはどうすればよいですか?

、TBMKは、私は次のアプローチを使用:

  • は特急静的なミドルウェアによって提供されて/publicフォルダ内の部分ビューファイルを置きました。
  • サーバーアプリケーションは、ファイルシステムから部分ビューを読み込みます。
  • FrontEndは、AJAX HTTPリクエストを介してパーシャルをロードします。

これ以上の方法はありますか?

答えて

1

私も同様の問題がありました。私の解決策は、ajaxリクエストを処理する特定のルート(多分、特別なコントローラであっても、懸念の分離のため)を用意することでした。

コントローラは、viewsディレクトリからファイルを提供しています。

例:あなたもファイルを持っている可能性があり、

router.get('/partials/:partialName', function(req, res, next) { 
    res.sendfile(`viewsDir/partialsDir/${req.params.partialName}`, 
    {root: __dirname }); 
}); 

この方法は:その後、同様に対応できるコントローラ

http://myhost.com/partials/my-partial

:アプリ/ viewsDir/partialsDirディレクトリからファイルは次のようなURLを使用したいですハンドルバーや他のサーバー側のテンプレートエンジンによって前処理されています。

パブリックディレクトリにテンプレートを配置したくないため、私はこのようにしました。

関連する問題