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

Extending the keystone.js core


Now we have the new theme almost ready.

We will now see how we can extend the core keystone.js and add another page on our blog, as the previous screenshot shows, we have an ABOUT menu item, so let's create it:

  1. Create a new file called About.js inside models/folder and add the following lines of code:

          var keystone = require('keystone'); 
          var Types = keystone.Field.Types; 
     
          /** 
           * About Model 
           * ========== 
          */ 
     
          var About = new keystone.List('About', { 
            // Using map to show title instead ObjectID on Admin Interface 
            map: { name: 'title' }, 
            autokey: { path: 'slug', from: 'title', unique: true }, 
          }); 
     
          About.add({ 
            title: { type: String, initial: true, default: '',
              required: true }, description: { type: Types.Textarea } 
          }); 
     
          About.register();
    
  2. Add the new module to admin navigation, open keystone.js in the root folder, and add the following highlighted...