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

You're reading from   Web Development with MongoDB and Node Build fast web applications for handling any kind of data

Arrow left icon
Product type Paperback
Published in Sep 2017
Publisher
ISBN-13 9781788395083
Length 330 pages
Edition 3rd Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Bruno Joseph D'mello Bruno Joseph D'mello
Author Profile Icon Bruno Joseph D'mello
Bruno Joseph D'mello
Arrow right icon
View More author details
Toc

Table of Contents (13) Chapters Close

Preface 1. Welcome to JavaScript in the Full Stack FREE CHAPTER 2. Getting Up and Running 3. Node and MongoDB Basics 4. Introducing Express 5. Templating 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. Popular Node.js Web Frameworks 12. Single Page Applications with Popular Frontend Frameworks

Defining the schemas and models


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

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

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

const ImageSchema = new Schema({
    title: { type: String },
    description: { type: String },
    filename: { type: String },
    views: { type: Number, 'default': 0 },
    likes: { type: Number, 'default': 0 },
    timestamp: {...
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