A Node.js skeleton using Express, Mongoose and Coffeescript
April 13, 2013 ยท View on GitHub
Do you find yourself looking around for Node.js conventions and how to structure your Node application? Firstly, this skeleton shows how a Node.js web application can be structured properly. Secondly, it demonstrates how some popular modules that provide basic functionalities for your app can be used.
I haven't been using Node.js for long but here I've gathered some of the good things I have come across on my short journey. Hope this can help you get started.
You can find this demo running on Heroku: http://form5-node-skeleton.herokuapp.com/
Log in using admin/admin to manage users & articles.
Install
Assuming you have Node.js and npm installed, to get started developing using this skeleton, run:
$ git clone git://github.com/olafurnielsen/form5-node-express-mongoose-coffeescript.git
$ npm install
$ bin/devserver
Open http://localhost:3000/ in your browser.
What does this skeleton provide you with?
- A good way to structure your Express.js application.
- Object modeling for MongoDB using Mongoose.
- Passport.js for user authentication.
- Twitter Bootstrap, to jumpstart your UI development.
- connect-assets for serving CSS, Javascript and images to the client supporting Coffeescript and LESS on the fly.
- connect-flash for helpful error/notice messages.
- connect-mongo for persistent session storage.
- Coffeescript linting using Grunt.
- node-dev, an awesome development tool for Node.js that automatically restarts your node process when a script is modified. It also has useful growl notifications:

And much more...
File structure
-app/
|--controllers/
|--models/
|--views/
|__helpers/ (template helper functions)
-config/
|--routes.coffee
|--environment.coffee
|--passport.coffee (auth config)
|--express.coffee (express.js config)
|--middlewares/ (custom middlewares)
-assets/ (Client side assets)
|--css/ (supports LESS)
|--js/ (supports Coffescript)
|--img/
-bin/
|__devserver (Shell script for firing up node-dev)
--server.js
Inspiration and further reading
This skeleton is heavily based on nodejs-express-mongoose-demo but it uses Coffeescript instead of standard javascript and implements various other modules which I think are really useful when developing an Express.js application.
Madhums - Breaking down app.js file - nodejs, express, mongoose
Stack Overflow - Node.js & Express.js: Breaking up the app.js file