Book Image

Node.js 6.x Blueprints

By : Fernando Monteiro
Book Image

Node.js 6.x Blueprints

By: Fernando Monteiro

Overview of this book

Node.js is the most popular framework to create server-side applications today. Be it web, desktop, or mobile, Node.js comes to your rescue to create stunning real-time applications. Node.js 6.x Blueprints will teach you to build these types of projects in an easy-to-understand manner. The key to any Node.js project is a strong foundation on the concepts that will be a part of every project. The book will first teach you the MVC design pattern while developing a Twitter-like application using Express.js. In the next chapters, you will learn to create a website and applications such as streaming, photography, and a store locator using MongoDB, MySQL, and Firebase. Once you’re warmed up, we’ll move on to more complex projects such as a consumer feedback app, a real-time chat app, and a blog using Node.js with frameworks such as loopback.io and socket.io. Finally, we’ll explore front-end build processes, Docker, and continuous delivery. By the end of book, you will be comfortable working with Node.js applications and will know the best tools and frameworks to build highly scalable desktop and cloud applications.
Table of Contents (16 chapters)
Node.js 6.x Blueprints
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface

Refactoring the app.js file with the new middleware


At this time, we have to do a major restructuring of the app.js file to include the new middleware that we will use.

We will show you step by step how to include each middleware and at the end, we will see the complete file:

  1. Open app.js and add the following lines before var app = express():

          // ODM With Mongoose 
          var mongoose = require('mongoose'); 
          // Modules to store session 
          var session    = require('express-session'); 
          var MongoStore = require('connect-mongo')(session); 
          // Import Passport and Warning flash modules 
          var passport = require('passport'); 
          var flash = require('connect-flash'); 
    

    This is a simple import process.

  2. Add the following lines after app.set('view engine', 'ejs'):

          // Database configuration 
          var config = require('./server/config/config.js'); 
          // connect to our database 
          mongoose.connect(config.url); 
          // Check if MongoDB is running 
          mongoose.connection.on('error', function() {
            console.error('MongoDB Connection Error. Make sure MongoDB is
             running.'); 
          }); 
     
          // Passport configuration 
          require('./server/config/passport')(passport); 
    
  3. Note that we are using a config.js file in the first line; later we will create this file.

  4. Add the following lines after app.use(express.static(path.join(__dirname, 'public'))):

          // required for passport 
          // secret for session 
          app.use(session({ 
              secret: 'sometextgohere', 
              saveUninitialized: true, 
              resave: true, 
              //store session on MongoDB using express-session +
              connect mongo 
              store: new MongoStore({ 
                  url: config.url, 
                  collection : 'sessions' 
              }) 
          })); 
     
          // Init passport authentication 
          app.use(passport.initialize()); 
          // persistent login sessions 
          app.use(passport.session()); 
          // flash messages 
          app.use(flash());