Book Image

MEAN Cookbook

By : Nicholas McClay
Book Image

MEAN Cookbook

By: Nicholas McClay

Overview of this book

The MEAN Stack is a framework for web application development using JavaScript-based technologies; MongoDB, Express, Angular, and Node.js. If you want to expand your understanding of using JavaScript to produce a fully functional standalone web application, including the web server, user interface, and database, then this book can help guide you through that transition. This book begins by configuring the frontend of the MEAN stack web application using the Angular JavaScript framework. We then implement common user interface enhancements before moving on to configuring the server layer of our MEAN stack web application using Express for our backend APIs. You will learn to configure the database layer of your MEAN stack web application using MongoDB and the Mongoose framework, including modeling relationships between documents. You will explore advanced topics such as optimizing your web application using WebPack as well as the use of automated testing with the Mocha and Chai frameworks. By the end of the book, you should have acquired a level of proficiency that allows you to confidently build a full production-ready and scalable MEAN stack application.
Table of Contents (13 chapters)

Using pre-save hooks and custom methods in Mongoose Models

Often, we need to transform values between what is written to the model and what we want to persist in our database. One of the most common uses for this kind of transformation is for password security. Saving a password in any format other than a salted hash to your database is a serious security vulnerability. The best way to handle this with Mongoose is to simply use the built in pre-save hook to perform this operation using an encryption library, such as bcrypt.

In cryptography, a salt is just random data that is used in conjunction with a one-way function known as a hash. A hash is a mathematical algorithm that maps a piece of data like a password, to a string of a fixed size. The main use of salts is to defend against a hashing vulnerability known as a rainbow table attack.

If you are interested in learning more...