Folder structure for both server side and thick client web app Folder structure for both server side and thick client web app express express

Folder structure for both server side and thick client web app


In your place, I would do that way:

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

The main idea is to place public folder outside of the scope of your server javascript files.

See an example here: https://github.com/madhums/node-express-mongoose-demo/


Just put the whole /webapp under /public so you'll end creating, for instance, frontend's models under /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


Heres my suggested folder structure:

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

I think its very tidy and easy to navigate in, because all the server and node_modules stuff is outside and the files I need for the application is in the "webapp" folder. If you really need a folder called "public" (I cant remember if express needs one or not) I think you can just rename the "webapp" folder to "public", or drop the "webapp" folder inside "public". I would also recommend using AngularJS instead of .ejs, but do what you want to do. :)