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
Full-Stack Web Development with Vue.js and Node
Full-Stack Web Development with Vue.js and Node

Full-Stack Web Development with Vue.js and Node: Build scalable and powerful web apps with modern web stack: MongoDB, Vue, Node.js, and Express

eBook
$9.99 $39.99
Paperback
$48.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Full-Stack Web Development with Vue.js and Node

Introducing MEVN

Mongo, Express, Vue.js, and Node.js (MEVN) is a collection of JavaScript technologies just like MongoDB, Express, Angular, and Node.js (MEAN), and like MongoDB, Express, React, and Node.js (MERN). It is a full-stack solution for building web-based applications that use MongoDB as data storage, Express.js as the backend framework (which is built on top of Node.js), Vue.js as the JavaScript framework for the frontend, and Node.js as the main engine for the backend.

This book is for web developers who are interested in learning to build a full-stack JavaScript application using MongoDB, Express.js, Vue.js, and Node.js. It is suitable for beginners and intermediate developers with a basic knowledge of HTML, CSS, and JavaScript.

The term MEVN may be new, but the technologies used in it are not new. The only new technology that is being introduced here is Vue.js. Vue.js is an open source JavaScript framework, and its popularity is growing rapidly. There's not much of a learning curve with Vue.js and it is also a fierce competitor of other JavaScript frameworks such as AngularJS and ReactJS.

Modern web applications need to be fast and easily scalable. In the past, JavaScript was used in web applications only when there was a need to add some visual effects or animations that normal HTML and CSS could not achieve. But today, JavaScript has changed. Today, JavaScript is used in almost every web-based application, from small to large-scale apps. JavaScript is chosen when the application needs to be much faster and more interactive.

Building a full-stack application using JavaScript as the sole programming language has its own benefits:

  • If you are just starting out and learning how to program, you only have to master one language: JavaScript. 
  • Full-stack engineers are high in demand. Becoming a full-stack developer means that you have an idea of how databases work, you know how to build both the backend and the frontend, and you also have the skills for UI/UX.

In this book, we will build the application using these technology stacks. 

We will cover the following topics in this chapter:

  • An introduction to the MEVN technology stack
  • An introduction to Node.js and its installation on Windows, Linux, and macOS
  • An overview of npm and its installation
  • An introduction to MongoDB and its installation and a few basic commands used in MongoDB
  • An introduction to GitHub version control and how it helps software engineers in terms of easy access to code history and collaboration

Evolution of the technology stack in JavaScript

JavaScript is one of the most important programming languages today. Founded by Brendan Eich in 1995, it has done superbly well, not only in maintaining its status, but also in rising above all other programming languages.

The popularity of JavaScript is ever growing with no end in sight. Building web applications with JavaScript as the sole programming language has always been popular. And with this fast growing pace, the need for software engineers to have knowledge of JavaScript is only increasing. No matter what programming language you choose to excel at, JavaScript always crawls its way in to get involved with other programming languages as well, one way or the other.

There are a lot of technologies to choose from for the frontend and backend while developing an application. While this book uses Express.js for the backend, there are other frameworks as well, which you can learn if you want.

The other available backend frameworks are Meteor.js, Sails.js, Hapi.js, Mojito, Koa.js, and many others.

Similarly, for the frontend, the technologies include Vue.js, React, Angular, Backbone, and many more.

For databases, the options, other than MongoDB, are MySQL, PostgreSQL, Cassandra, and others.

Introducing MEVN

JavaScript frameworks are rising day by day, both in terms of numbers and their usage. JavaScript used to be implemented only for the client-side logic but, over the years, it has seen significant growth and now it is used both on frontends and backends.

Express.js in the MEVN stack is used to manage all the backend-related stuff and Vue.js handles all the view-related stuff. The advantages of using an MEVN stack are as follows:

  • One language is used throughout the whole application, which means the only language you need to know is JavaScript
  • Understanding the client side and server side is very easy with one language
  • Its very fast and reliable application with the non-blocking I/O of Node.js
  • Its a great way to keep updated on the growing ecosystem of JavaScript

Installing Node.js

To get started, we need to add all the dependencies that are required for an MEVN stack application. We can also refer to the documentation on the official website (https://nodejs.org/) for details on how to install Node.js in any operating system. 

Installing Node.js on macOS

There are two ways to install Node.js on macOS: using the installer or using the bash.

Installing Node.js using the installer

To install Node.js using the installer, perform the steps:

  1. Install the installer: We can download the installer for macOS from the official website's download page (https://nodejs.org/en/#download). We will be installing the latest node version, which is 10.0.0. You can install any node version you want, but the application that we will be building in this book will require the node version >= 6.0.0. Run the installer and follow the instructions given. When we download and run the installer, we will be prompted with the following dialog box:
  1. Just hit Continue until the installation finishes. Once the installation is complete, we will be able to see the following dialog box:

Just hit Close and we will be done.

Installing Node.js using the bash

Node.js can be easily installed using Homebrew in macOS. Homebrew is a free and open source software package manager that is used to install software on macOS. I personally prefer Homebrew because it makes it very easy to install different software on Mac:

  1. To install Homebrew, type the following command:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. Now, use Homebrew to install Node.js with the following command:
$ brew install node

Installing Node.js on Linux

For Linux, we can either install the default distribution of Node.js or we can download it from NodeSource to use the latest version.

Installing Node.js from the default distribution

To install from the default distribution, we can install Node.js on Linux by using this command:

$ sudo apt-get install -y nodejs

Installing Node.js from NodeSource

To install Node.js from NodeSource, perform the following steps:

  1. First download the latest version of Node.js from NodeSource:
$ curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash 
  1. Then, install Node.js with the command:
$ sudo apt-get install -y nodejs
The apt is a short form of Advanced Package Tool that is used to install software on Debian and Linux distributions. Basically, this is equivalent to the Homebrew command in macOS.

Installing Node.js on Windows

We can install Node.js on Windows by following these steps:

  1. Download the Node.js installer from the official website (https://nodejs.org/en/download/)
  2. Run the installer and follow the given instructions
  3. Click on the Close/Finish button

Installing Node.js for Windows via an installer is almost the same as on macOS. Once we download and run the installer, we will be prompted with a dialog box. Just click on Continue until the installation completes. When we finally see a dialog with a confirmation, we hit Close. Node.js will be installed!

Introducing NVM

NVM stands for Node Version Manager. NVM keeps track of all the node versions that we installed and also lets us switch between different versions. This is handy when the application that we built for one version of Node.js does not become compatible with the other versions, and we need that specific node version to make things work. NVM allows us to manage these versions easily. This is also very helpful when we need to upgrade or downgrade the node versions.

Installing Node.js from NVM

  1. To download NVM, use the following command:
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
  1. We can also use the following command:
$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
  1. Check whether nvm has successfully installed using the following command:
$ nvm --version 
  1. Now, to install node via nvm, use this command:
$ nvm install node

Introducing npm

The npm is the acronym for Node Package Manager. Basically, it is a tool that takes care of all the packages that we install for Node.js. We can find all the existing packages on the official website (https://www.npmjs.com/). npm makes it easy for developers to keep their code updated and to reuse code shared by many other developers.

Developers are often confused by the terms package and modules. However, there is a clear distinction between these two.

Module

A module is something that can be loaded by Node.js with a require command and has a namespace. A module has a package.json file associated with it. 

Package

package is just a file, or group of files, that is capable of functioning on its own. Every package also has a package.json file that contains all the metadata-related information that describes that package. A combination of modules makes up a node package.

Installing npm

When we install Node.js from the installer itself, npm is installed as a part of the node. We can check whether npm is installed or not by using the following command:

$ npm --version

If npm is not installed, the command displays an error, whereas if installed, it just prints out the version of the installed npm.

Using npm

npm is used to install different packages in our application. There are two ways to install packages: locally and globally. When we want to install a certain package specific to our application, we want to install that package locally. However, if we want to use a certain package as a command-line tool or be able to access it outside our application as well, we will want to install it as a global package.

Installing an npm package locally

To install a package specific to our application only, we can use this command:

$ npm install <package_name> --save

Installing an npm package globally

To install a package globally, we can use this command:

 $ npm install -g <package_name>

Introducing package.json

All the node packages and modules consist of a file called package.json. The main function of this file is to carry all the meta information associated with that package or module. A package.json file requires the content to be a JSON object.

As a minimum, a package.json file consists of the following things:

  • name: The name of the package. This is an important part of a package.json file as it is the main thing that distinguishes it from other packages and, hence, it is a required field.
  • version: The version of the package. This is also a required field. To be able to install our package, the name and version fields need to be given.
  • description: A short summary of the package.
  • main: This is the primary entry point used to look for the package. Basically, it is a file path, so when a user installs this package, it knows where to start looking for the modules.
  • scripts: This field consists of commands that can be run for various states in the application. It has a key-value pair. The key is the event at which the command should be run and the value is the actual command.
  • author/contributors: The author and contributors are the people. It contains an identifier of the person. An author is a single person, whereas contributors can be a group of people.
  • license: The license field, when provided, makes it easy for the users to use our package. This helps in identifying the permissions and restrictions when using the package.

Creating a package.json file

We can manually create a package.json file and specify the options ourselves, or we can use a command to create it interactively from the command prompt. 

Let's go ahead and initialize a sample application with a package.json using npm.

First, create a folder in your projects directory using the command:

$ mkdir testproject

To create a package.json file, run the following command in the application that we created:

$ npm init

Running this command will ask us a bunch of questions that we can answer interactively from the command line:

In the end, it will create a package.json file, which will have the following content:

Installing MongoDB

MongoDB is the first part of the technology in the MEVN stack. MongoDB is a free and open source document-based database published under a GNU license. It is a NoSQL database, meaning it is a non-relational databaseUnlike relational databases, which use tables and rows to represent data, MongoDB uses collections and documents. MongoDB represents the data as a collection of JSON documents. It provides us with the flexibility to add fields in whatever way we want. Each document in a single collection can have a totally different structure. Aside from adding fields, it also provides the flexibility to change the fields from document to document in whatever way we want, something that is a cumbersome task in relational databases. 

The benefits of MongoDB compared to Relational Database Management Systems (RDBMS)

MongoDB offers a lot of benefits compared to Relational Database Management Systems:

  • Schema-less architecture: MongoDB does not require us to design a specific schema for its collections. A schema for one document can vary, with another document being totally different.
  • Each document is stored in a JSON-structured format.
  • Querying and Indexing the MongoDB is very easy.
  • MongoDB is a free and open source program.

Installing MongoDB on macOS 

Installing MongoDB by downloading

  1. Download the version of MongoDB you want from https://www.mongodb.com/download-center#production.
  2. Copy the downloaded gzipped to the root folder. Adding it to the root folder will allow us to use it globally:
 $ cd Downloads
$ mv mongodb-osx-x86_64-3.0.7.tgz ~/
  1. Unzip the gzipped file:
 $ tar -zxvf mongodb-osx-x86_64-3.0.7.tgz
  1. Create a directory that will be used by Mongo to save data:
 $ mkdir -p /data/db
  1. Now, to check if the installation was done successfully, start the Mongo server:
 $ ~/mongodb/bin/mongod

Here, we have successfully installed and started the mongo server.

Installing MongoDB via Homebrew

To install MongoDB in macOS from Homebrew, follow these steps:

  1. With Homebrew, we just need a single command to install MongoDB:
$ brew install mongodb
  1. Create a directory that will be used by Mongo to save data:
 $ sudo mkdir -p /data/db
  1. Start the Mongo server:
 $ ~/mongodb/bin/mongod

Hence, MongoDB is finally installed.

Installing MongoDB on Linux

There are two ways to install MongoDB on Linux as well: we can either use the apt-get command or we can download the tarball and extract it.

Installing MongoDB using apt-get

To install MongoDB using apt-get, perform the following steps:

  1. Run the following command to install the latest version of MongoDB:
 $ sudo apt-get install -y mongodb-org
  1. Verify if mongod has been successfully installed by running the command:
 $ cd /var/log/mongodb/mongod.log
  1. To start the mongod process, execute the following command in the Terminal:
 $ sudo service mongod start
  1. See if the log file has a line that denotes that the MongoDB connection was made successfully:
 $ [initandlisten] waiting for connections on port            <port>
  1. To stop the mongod process:
 $ sudo service mongod stop
  1. To restart the mongod process:
 $ sudo service mongod restart

Installing MongoDB using tarball

  1. Download the binary file from https://www.mongodb.com/download-center?_ga=2.230171226.752000573.1511359743-2029118384.1508567417. Use this command:
 $ curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-
3.4.10.tgz
  1. Extract the downloaded files:
 $ tar -zxvf mongodb-linux-x86_64-3.4.10.tgz
  1. Copy and extract to the target directory:
 $ mkdir -p mongodb
$ cp -R -n mongodb-linux-x86_64-3.4.10/ mongodb
  1. Set the location of the binary in the PATH variable:
 $ export PATH=<mongodb-install-directory>/bin:$PATH
  1. Create a directory to be used by Mongo to store all database-related data:
 $ mkdir -p /data/db
  1. To start the mongod process:
 $ mongod

Installing MongoDB on Windows

Installing MongoDB from the installer is as easy as installing any other software on Windows. Just like we did for Node.js, we can download the MongoDB installer for Windows from the official website (https://www.mongodb.com/download-center#atlas). This will download an executable file.

Once the executable file is downloaded, run the installer and follow the instructions. Just go through the dialog box, reading the instructions carefully. When the installation is complete, just click on the Close button and you are done.

Using MongoDB

Let's dive a little deeper into MongoDB. As mentioned earlier as well, Mongo consists of a database with collections (tables/groups of data) and documents (rows/entries/records). We will use a few commands provided by MongoDB to create, update, and delete the documents:

First, start the Mongo server with this command:

$ mongod

Then, open the Mongo shell with this command:

$ mongo

Creating or using a MongoDB database

This is the place where we can see all of our databases, collections, and documents.
To display the list of databases that we have, we can use the following:

> show dbs

Now, this command should list all the existing databases. To use the database that we want, we can simply run this command:

> use <database_name>

But if there is no database listed, don't worry. MongoDB provides us with a functionality where, when we run the preceding command, even if that database does not exist, it will automatically create a database with the given name for us.

So, if we already have a database that we want to use, we simply run that command and, if there are no databases yet, we create one using this command:

> use posts

When we run this command, a database named posts will be created.

Creating documents

Now, let's quickly review the commands used in MongoDB. The insert command is used to create new documents in a collection in MongoDB. Let's add a new record to the database that we just created called posts.

Here as well, in order to add a document to a collection, we first need a collection, which we don't have yet. But MongoDB allows us to create a collection easily by running the insert command. Again, if the collection exists, it will add the document to the given collection and, if the collection does not exist, it will simply create a new collection.

Now, in the Mongo shell, run the following command:

> db.posts.insertOne({
title: 'MEVN',
description: 'Yet another Javascript full stack technology'
});

The command will create a new collection called posts in the posts database. The output of this command is:

It will return a JSON object that has the ID of the document that we just created in the insertedId key and a flag that the event was received as acknowledged.

Fetching documents

This command is used when we want to fetch the records from a collection. We can either fetch all the records or a specific document by passing parameters as well. We can add a few more documents to the posts database to better learn the command

Fetching all documents

To fetch all the records from the posts collection, run the following command:

> db.posts.find()

This will return all the documents that we have in the posts collection:

Fetching a specific document

Let's find a post where the title is MEVN. To do that, we can run:

> db.posts.find({ 'title': 'MEVN' })

This command will return only those documents whose title is MEVN:

Updating documents

This command is used when we want to update a certain part of a collection. Let's say we want to update the description of a post whose title is Vue.js; we can run the following command:

> db.posts.updateOne(
{ "title" : "MEVN" },
{ $set: { "description" : "A frontend framework for Javascript programming language" } }
)

The output for this command will be:

We can see here that the matchedCount is 1, which means that as regards the parameter that we sent to update the record with the title MEVN, there was one document in the posts collection that matched the query.

The other key called modifiedCount gives us the count of the documents that got updated.

Deleting documents

The delete command is used to remove documents from a collection. There are several ways to delete a document from MongoDB.

Deleting documents that match a given criteria

To remove all the documents with certain conditions, we can run:

> db.posts.remove({ title: 'MEVN' })

This command will remove all the documents from the posts collection whose titles are MEVN.

Deleting a single document that matches the given criteria

To delete only the first record that satisfies the given criteria, we can just use:

> db.posts.deleteOne({ title: 'Expressjs' })

Deleting all records

To delete all the records from a collection, we can use:

> db.posts.remove({})

Introducing Git

Git is a version control system for tracking the code changes in our application. It is a free and open source software used to track and coordinate multiple users when building an application.

To start using this software, we need to install it first. There is a very easy way to install it on every OS.

Installing Git on Windows

We can find the installer for Git for Windows at https://gitforwindows.org/.

Download the executable installer file for Windows and follow the step-by-step instructions accordingly.

Installing Git on Mac

We can easily install Git on Mac via Homebrew. Just type the following command in the command line to install Git on Mac:

$ brew install git

Installing Git on Linux

Installing Git in Linux is as easy as installing Git on macOS. Just type the following command and hit Enter to install Git on Linux:

$ sudo apt-get install git

Introducing GitHub

GitHub is a version control service. It is a source code management tool specifically designed to track changes to our code. GitHub also provides features of social networking, such as adding comments, and displaying feeds, which makes it even more powerful because multiple developers can collaborate at the same time in a single application.

Why GitHub?

GitHub is a savior for software engineers. There are several advantages that GitHub provides that make it worthwhile to use. A few benefits that are provided by GitHub are listed here:

  • Tracking code changes: GitHub helps track changes to the code, which means it maintains a history of our code. This enables us to view revisions of our code base made during any time period.
  • Documentation: GitHub provides features for adding documentation, Wikis, and so on to our code bases, and these can be written using the simple markdown language.
  • Graphs and reporting: GitHub provides insight into various metrics, including how many additions and deletions were made to the code, who the top contributors were, and who has the most commits.
  • Bug tracking: Since GitHub tracks all the activities made at every point in time, when something breaks, we can easily backtrack to the point that broke the code. We can also integrate third-party tools such as Travis for continuous integration, which helps us to track and identify bugs easily.
  • Collaboration is easy: GitHub tracks every activity done by every collaborator working on the project and also sends email notifications about the same. It also provides social media features, such as feeds, comments, emojis, and mentions.
  • Hosting our own website: We can also host our own website with GitHub using a feature called GitHub pages. We just need to create a repo for our own project and host it using GitHub pages, which will then make the website applicable to the URL: https://<username>.github.io.

Using GitHub

GitHub is very easy to use. However, to get started using GitHub, we need to least know about a few terminologies that are used in GitHub:

  • Repository/Repo: A repository is a place where all of our code bases are stored. A repository can be either private or public.
  • ssh-key: ssh-key is a way to authorize in GitHub. It stores our identities.
  • Branch: A branch can be defined as multiple states of a repository. The primary branch of any repository is the master branch. Multiple users can work in parallel on different branches.
  • Commit: A commit makes it easy to distinguish between different states of a file at a given time. When we make a commit, a unique identifier is assigned to that commit so what it's easy to check what changes were made in that commit. A commit takes a message as a parameter to describe the type of change that is being made.
  • Push: A push sends the commit that we made back to our repository.
  • Pull: As opposed to pushing, pulling fetches the commit from the remote repository to our local project.
  • Merge: Merging is basically done between multiple branches. It is used to apply changes from one branch to another.
  • Pull requestsCreating a pull request is basically sending the changes that we made to our code base for the approval of other developers. We can start discussions on a pull request to check the quality of code and ensure that the changes don't break anything.
To learn more about the vocabulary used in GitHub, visit https://help.github.com/articles/github-glossary/.

Setting up a GitHub repository

Now that we know the basics of GitHub, let's get started creating a GitHub repository for the project we want to build:

  1. First, create a folder for the application in the root folder. Let's name this application blog:
 $ mkdir blog
  1. Create an account on GitHub at https://github.com/.
  2. Go to your profile. Under the Repositories tab, click New as follows:
  1. Name this repository blog.
  2. Now, on the Terminal, go to the location of this application and initialize an empty repository with this command:
 $ cd blog
$ git init
  1. Now, let's create a file called README.md and write a description for the application and then save it:
 $ echo 'Blog' > README.md
  1. Add this file to GitHub:
 $ git add README.md
  1. Add a commit so that we have a history of this change of code:
 $ git commit -m 'Initial Commit'
  1. Now, to link the local application with the remote repository in GitHub, use this command:
$ git remote add origin https://github.com/{github_username}/blog.git
  1. Finally, we need to push this commit to GitHub:
 $ git push -u origin master

When it's done, visit the GitHub repository where you will find a history of the commits made to our repository, as follows:

That's it. Now, when we want to write changes, we will first create a branch and push the changes to the branch.

Summary

In this chapter, we learned what an MEVN stack is. We learned what Node.js, npm, and MongoDB, are as well as receiving a brief summary of GitHub and how it helps software engineers for easy access to code history and collaboration.

In the next chapter, we will learn more about Node.js and Node.js modules. We will learn about the MVC architecture and how to implement it by building an application with Express.js.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Construct modern web applications with Node 10, Express.js, MongoDB, and Vue
  • Leverage the latest web standards to increase code performance, readability, and cross-compatibility
  • Harness the power of the JavaScript ecosystem to effectively run, build, and test your full stack applications

Description

Isomorphic JavaScript was the buzzword of the year 2017, allowing developers to utilize a single language throughout their web development stack and build cost-effective and scalable applications. MEVN is a one such modern web development stack consisting of web applications such as MongoDB, Express.js, Vue.js, and Node.js. Hands-On Full-Stack Web Development with Vue.js 2 and Node.js leverages the harmony of these technologies to help you create full-stack web applications. Starting with the core frameworks, this example-based guide explains all the key concepts of frameworks, how to set them up properly, and how to use popular modules to connect them together and make them work cohesively. You will learn all this with the help of real-world examples. In addition to this, you will be able to scaffold web application architecture, add an authentication layer, and develop the MVC structure to support the development of your application. You'll explore how to create data models for your applications and then write REST APIs by exposing your data model to your application. Solely orientated towards building a full, end-to-end application using the MEVN stack, this book will help you understand how your application development grows.

Who is this book for?

If you are a web or a full-stack JavaScript developer, and have tried your hand at traditional stacks such as LAMP, MEAN or MERN, or wish to explore a new stack with modern web technologies, then this book is for you. Prior knowledge of HTML, CSS, and JavaScript would be an added advantage.

What you will learn

  • Build an application with Express.js
  • Create schemas using Mongoose
  • Develop a single-page application using Vue.js and Express.js
  • Create RESTful APIs using Express.js
  • Add test cases to improve the reliability of the application
  • Learn how to deploy apps on Heroku using GitHub
  • Add authorization using passports

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : May 14, 2018
Length: 366 pages
Edition : 1st
Language : English
ISBN-13 : 9781788830775
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : May 14, 2018
Length: 366 pages
Edition : 1st
Language : English
ISBN-13 : 9781788830775
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 146.97
Full-Stack React Projects
$48.99
Full-Stack Web Development with Vue.js and Node
$48.99
Vue.js 2 Design Patterns and Best Practices
$48.99
Total $ 146.97 Stars icon
Banner background image

Table of Contents

11 Chapters
Introducing MEVN Chevron down icon Chevron up icon
Building an Express Application Chevron down icon Chevron up icon
Introducing MongoDB Chevron down icon Chevron up icon
Introducing REST APIs Chevron down icon Chevron up icon
Building the Real Application Chevron down icon Chevron up icon
Building Authentication with passport.js Chevron down icon Chevron up icon
Building OAuth Strategies with passport.js Chevron down icon Chevron up icon
Introducing Vuex Chevron down icon Chevron up icon
Testing an MEVN Application Chevron down icon Chevron up icon
Going Live Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Half star icon Empty star icon Empty star icon 2.3
(4 Ratings)
5 star 25%
4 star 0%
3 star 0%
2 star 25%
1 star 50%
Paul Pisces Jan 25, 2019
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This is an excellent book so far on an updated MEAN -> MEVN stack.I am mostly reading it for the VUE part of the stack but it has been a great recap of Mongo, Node and Express for me.I am up to Chapter 5 so far and I will update my review when I have completed the rest of the book and the examples.I am also reviewing the book because it has received such bad (undeserved?) reviews.My review gives an alternative opinion.This book has so far met MY objectives which are obviously also determined by my experience.I hope it encourages you to give this book a try as it is the only one I have found covering MEVN.
Amazon Verified review Amazon
saiello Oct 16, 2018
Full star icon Full star icon Empty star icon Empty star icon Empty star icon 2
I'm just hitting chapter 5 out of 10 in the book, and I have to say most of it is solid... Until it's not. The end of chapter 3 is completely useless, as there are several pages of code, but there's is no instruction on where to place the code. The book has you create a templated app using MVC, but then they don't tell you if the code they are showing is going in the model or the controller.The book would have gotten 5 out of 5 stars if it wasn't for this huge hole. I'll update the review as I go through more of the book.Updating this review after getting through chapter 5 (Vue.js) Current rating 2 stars, down from 3The Vue.js chapter is pretty horrible. Most of the chapter is simply code that says copy this into your application. There's very little actual education going on here. I feel after reading this chapter, they could have stuck to Node.js and gone into depth about the directory structure of the pre-created Express site. After chapter 5, feel pretty bummed about this book.
Amazon Verified review Amazon
R.Bannai Oct 12, 2018
Full star icon Empty star icon Empty star icon Empty star icon Empty star icon 1
The pack of screen shots and no particularly new information which I defined as something you can hardly find on the Internet. All info is the water-downed version of official documents or worse. Just take a look at official page, which is clearly better since I already knew its contents. If you stuck at your coding, do google, you can find any.I expected this since I knew her as Medium author. For one who is about to purchase, save your money for something valuable.Also I began to doubt this publisher as well.
Amazon Verified review Amazon
Mr. R. Urbanski Sep 19, 2018
Full star icon Empty star icon Empty star icon Empty star icon Empty star icon 1
The book contain a lot of code but it's not described what this code does and what it's needed for. Sometimes it's not even clear at what file this code needs to be added. But the biggest issue I have with the presented examples is that you follow the instructions, just to find out that big part of the code you written to be replaced with a different approach in the next chapter. Why not use a correct approach in the first place? My goal after reading this book is to be able to use the best possible approach and not to waste time on learning some techniques which aren't best practices and will be replaced later on in the book. Also the book contains a lot of incorrect syntax, i.e commas where they shouldn't be, etc. Don't waste your money, find a tutorial on-line it will be more useful. The last nail to the coffin is the code samples on GitHub - you can't simply download a particular file, you need to download the whole chapter where some of the chapters, packed in the countless number of zip files, weights more than a 100 MB. Why not include only the files for each chapter which are modified in this chapter?
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.