2013-05-25 3 views
12

Derzeit verwende ich Node.js für das Backend und entweder extjs oder Backbone für den Client und ich bin jetzt völlig verwirrt auf der Ordnerstruktur.Ordnerstruktur für Serverseite und Thick Client Web App

Mit express meine Ordnerstruktur ist als

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

wo app.js der Eintrittspunkt ist und es verwendet router.js Routing und Wiedergabe der Ansichten zu handhaben. Dies funktioniert gut, wenn es nur serverseitige Entwicklung ist. Nun, wenn ich ExtJS oder Backbone für den Client verwenden möchte, wie soll ich meinen Code organisieren? Sollte ich es zu public Ordner hinzufügen oder views?

Wenn dies der Fall ist, wo sollte ich das Modell für meine extjs-Dateien? Wenn ich es in models Ordner abgelegt fühlt es sich wie ich Vertauschen Client- und Server-Code in einem Ordner und es wird verwirrend sein ...

Antwort

9

an deiner Stelle würde ich auf diese Weise tun:

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

Die Hauptidee ist öffentliche Ordner außerhalb von t zu platzieren Der Umfang Ihres Servers Javascript Dateien. hier

ein Beispiel Siehe: https://github.com/madhums/node-express-mongoose-demo/

+0

Ich landete mit dieser Struktur auch – GantengX

+0

So verwenden Sie node.js? wenn ja, gibt es 2 mvc-modelle, eine liegt auf der serverseite, eine andere auf der clientseite? –

+0

Meine Erfahrung mit Node.js ist das Schreiben einer MVC-Architektur auf Serverseite. Und um eine MVVM-Architektur auf Client-Seite zu verwenden, mit Frameworks wie Angular.js – Julien

2

Genau das ganze /webapp unter /public setzen, so werden Sie am Ende die Schaffung, für Beispiel Frontend Modelle unter /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

Heres meine vorgeschlagene Ordnerstruktur:

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

Ich denke, die sehr ordentlich und leicht zu navigieren in, da alle Server und Sachen node_modules ist draußen und die Dateien Ich brauche für die Anwendung im Ordner "Webapp". Wenn Sie wirklich einen Ordner mit dem Namen "public" benötigen (ich kann mich nicht erinnern, ob express einen braucht oder nicht), können Sie den Ordner "webapp" einfach in "public" umbenennen oder den Ordner "webapp" in "public" löschen. Ich würde auch empfehlen, AngularJS anstelle von .ejs zu verwenden, aber tun Sie, was Sie tun möchten. :)