A MVC boilerplate for Express.js
I built this application to create a template MVC
style app that I could then use as the start point for further development. I used the excellent examples in the main Express github repository, specifically the MVC example, as the starting point. I have however changed it quite substantially to make it clearer and remove some of the
magic that confused me at first when learning. If you are familiar with other MVC frameworks hopefully my file structure makes some sense.
- MongoDB: NoSQL Database, install manually.
- NPM: Node package manager, used to install the remaining.
- Express: Application Framework for Node.js
- Mongoose: Node.JS ORM for Mongo
- ejs: EmbeddedJS Templating
- cluster: extensible multi-core server manager
- log: Tiny logger with streaming reader
- connect: High performance middleware framework
- mime: A comprehensive library for mime-type mapping
- qs: querystring parser
- expresso: TDD framework, light-weight, fast, CI-friendly
- should: test framework agnostic BDD-style assertions
- socket.io: The cross-browser WebSocket
- jQuery UI: UI Library
- jQuery Aristo Template: Fantastic looking jQuery UI Template.
- Install node.js
// on osx with brew brew update brew install node // build from source git clone git://github.com/joyent/node.git ./configure make make install
- Ininstall mongodb
// on osx with brew brew update brew install mongodb // create db folder mkdir -p /usr/local/db/
For more installation detail please see this
- Install npm
curl http://npmjs.org/install.sh | clean=no sh
- Install required packages
// install executable package globally npm install express-mvc-bootstrap -g // make project folder and go to that folder mkdir /path/to/project cd /path/to/project // install packages locally to be `require();` npm install socket.io should mongoose log cluster expresso qs mime ejs connect express express-mvc-bootstrap
- In you project folder run
// create app eb create-app // running mongodb mongod --dbpath /usr/local/db/ // running server eb
- Browse to http://localhost:3000
// Shows help eb script // Wrapper for 3 commands below eb script generate-all HelloWorld // Creates a model eb script create-model HelloWorld // Creates a controller eb script create-controller HelloWorld // Creates views eb script create-view HelloWorld // Creates tests eb script create-test HelloWorld // Runs server on different port eb server server.port=3000 // Creates a new app eb create-app
Build some amazing apps!