NodeJS ベースのサーバー側およびクライアント側の JavaScript アプリケーションを作成しています。コントローラー、モデル、ビュー、およびプレゼンターがあります。私が直面している問題は、コードの一部がサーバー側のみ、一部がクライアント側、一部が両方である必要があることです。
たとえば、コントローラーは私にとって純粋なサーバー側のものであるため、クライアント側で利用できるべきではありません。一方、プレゼンターは純粋なクライアント側のものであるため、クライアント側で使用できる必要があります。
私の現在の悪い構造を見てください:
project\
project\public\index.js
project\public\images\
project\protected\controllers\
project\protected\models\
project\protected\views\
project\protected\presenters\
私が直面している問題は、パブリック フォルダーがドキュメント ルートであり、保護されているフォルダーがドキュメント ルートの外にあることです。クライアント側とサーバー側の両方でビューを使用できる必要があります。したがって、私のビューを保護することはできません。同じことがモデルや他の多くのものにも当てはまります。クライアント側でもそれらにアクセスできる必要があります。
一部の構成ファイルを除いて、構造全体をドキュメントルートの下に配置する必要があると考え始めています。これは私がすべきことですか?このアプローチに問題はありますか? 私が質問しているのは、ほとんどの Web フレームワーク (Django、Zend Framework) が、フレームワークがドキュメント ルートの外にあるように動作するためです。