2013-05-25 12 views
12

現在、私はクライアント用にバックエンドとextjsまたはバックボーン用にNode.jsを使用していますが、今はフォルダ構造を完全に混乱させています。 app.jsがエントリのポイントであるサーバー側とクライアント用の両方のWebアプリケーション用のフォルダ構造

appname 
    |--controllers 
    |--models 
    | |--appmodel.js 
    |--public 
    | |--css 
    | |--js // any client-side javascripts 
    |--routes 
    | |--router.js 
    |--views 
    | |--appview.ejs 
    |--app.js 

に従うようexpress私のフォルダ構造を使用して

があり、ビューのルーティングとレンダリングを処理するためにrouter.jsを使用しています。これは、サーバー側の開発のみであればうまく動作します。クライアントにExtJSまたはBackboneを使用したい場合は、コードをどのように整理すればよいですか? publicフォルダーまたはviewsフォルダーに追加する必要がありますか?

appname 
    |--controllers 
    | |--extbasedcontroller.js // correct location? 
    |--models 
    | |--appmodel.js 
    | |--extbasedmodels.js // correct location? 
    |--public 
    | |--css 
    | |--js 
    | | |--extjs // extjs files 
    |--routes 
    | |--router.js 
    |--views 
    | |--appview.ejs 
    | |--extbasedview.ejs // correct location? 
    |--app.js 

この場合、extjsファイルのモデルはどこに置く必要がありますか?私は1つのフォルダに、クライアントとサーバのコードを混合だし、混乱することになるだろうようにそれは感じているmodelsフォルダにそれを置く場合...

答えて

9

下のフロントエンドのモデルを、私はそのようにします:

appname 
    |--ServerCode 
    | |--controllers 
    | |--models 
    | | |--appmodel.js 
    | |--routes 
    | | |--router.js 
    | |--views 
    | | |--appview.ejs 
    | |--app.js 
    |--public 
    | |--css 
    | |--js // any client-side javascripts 
    | |--models 
    | |--controllers 
    | |--... 

主な考え方は、トンの外でパブリックフォルダを配置することです彼はあなたのサーバーのJavaScriptの範囲ファイルです。

ここでは例を参照してください:https://github.com/madhums/node-express-mongoose-demo/

+0

私もこの構造を使用して終了しました – GantengX

+0

だからあなたはnode.jsを使用していますか?はいの場合、2つのmvcモデルがあり、1つはサーバー側にあり、もう1つはクライアント側にあります。 –

+0

Node.jsで私の経験は、サーバー側にMVCアーキテクチャを記述することです。 Angular.jsなどのフレームワークを使用して、クライアント側でMVVMアーキテクチャを使用する – Julien

2

ちょうどので、あなたが作成、終了します/public下全体/webappを置きます例えば、あなたの代わりに/public/webapp/models

appname 
    |--models 
    | |--appmodel.js 
    |--public 
    | | |--webapp // extjs/backbone files 
    | | | |--models 
    | | | |--controllers 
    | | | |--css 
    | | | |--js 
    | | | |--img 
    | | | |--views 
    | | | | |--appview.ejs 
    | | | | |--extbasedview.ejs 
    |--routes 
    | |--router.js 
    |--app.js 
0

は、相続人は私の提案フォルダ構造:

appname 
    |--webapp 
    | |--img 
    | |--js 
    | | |--controllers 
    | | | |--controller.js 
    | | |--something.js 
    | |--css 
    | |--views 
    | | |-- appview.ejs 
    | |--index 
    | |--404 etc. 
    |--app.js 
    |--package.json 
    |--README 
    |-- etc. 

私がナビゲートするのは非常に整頓し、簡単だと思う、なぜならすべてのサーバーとのものをnode_modulesは外で、ファイル私はアプリケーションが "webapp"フォルダに必要です。 "public"というフォルダが本当に必要な場合は、 "webapp"フォルダの名前を "public"に変更したり、 "webapp"フォルダを "public"の中にドロップしたりすることができます。私は、.ejsの代わりにAngularJSを使うことをお勧めしますが、あなたがしたいことをしてください。 :)

関連する問題