Setting up the project
Before we get going on the Mongoose code, we need to get a couple of things in order in our project:
Our approach to code structure
The URLs/routes we'll need
Code structure
If we think in an MVC way, our Express project already has a model folder and a views folder. The model folder holds our schema definitions, Mongoose models and Mongoose connection. The views folder contains Jade templates for page layout. The controller aspect sits in the routes folder of a standard express installation. We could separate it out or move it around, but as the focus of this book is on using Mongoose, but not on MVC best practices, let's work with the default setup.
Adding the routes files
A good starting point when thinking about setting up your routes is to have one routes
file for each Mongoose model. Given the non-normalized data structure of MongoDB there aren't generally too many of these—we're not talking about individual tables in a relational database here! Also, as we saw earlier...