Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Web Development with MongoDB and Node.js

You're reading from   Web Development with MongoDB and Node.js Build an interactive and full-featured web application from scratch using Node.js and MongoDB

Arrow left icon
Product type Paperback
Published in Sep 2014
Publisher Packt
ISBN-13 9781783987306
Length 294 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Jason Krol Jason Krol
Author Profile Icon Jason Krol
Jason Krol
Arrow right icon
View More author details
Toc

Table of Contents (14) Chapters Close

Preface 1. Welcome to JavaScript in the Full Stack 2. Getting Up and Running FREE CHAPTER 3. Node and MongoDB Basics 4. Writing an Express.js Server 5. Dynamic HTML with Handlebars 6. Controllers and View Models 7. Persisting Data with MongoDB 8. Creating a RESTful API 9. Testing Your Code 10. Deploying with Cloud-based Services 11. Single Page Applications with Popular Frontend Frameworks 12. Popular Node.js Web Frameworks Index

Defining the schema and models


For the purposes of the application we are building, we're really only going to have two different unique schemas and associated models: an image model and comment model. If we were to take this application to production and really build it out with all of the necessary features, we should expect to have many more models as well.

First, create a new directory in your project labeled models and we will store the Node.js modules for each of our models here. Create three files in this directory named image.js, comment.js, and index.js. Let's take a look at the image model first. Copy the following block of code into the models/image.js file:

var mongoose = require('mongoose'),
    Schema = mongoose.Schema,
    path = require('path');

var ImageSchema = new Schema({
    title:          { type: String },
    description:    { type: String },
    filename:       { type: String },
    views:          { type: Number, 'default': 0 },
    likes:          { type: Number...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image