Book Image

Node.js Web Development - Third Edition

By : David Herron
Book Image

Node.js Web Development - Third Edition

By: David Herron

Overview of this book

Node.js is a server-side JavaScript platform using an event driven, non-blocking I/O model allowing users to build fast and scalable data-intensive applications running in real time. Node.js Web Development shows JavaScript is not just for browser-side applications. It can be used for server-side web application development, real-time applications, microservices, and much more. This book gives you an excellent starting point, bringing you straight to the heart of developing web applications with Node.js. You will progress from a rudimentary knowledge of JavaScript and server-side development to being able to create and maintain your own Node.js application. With this book you'll learn how to use the HTTP Server and Client objects, data storage with both SQL and MongoDB databases, real-time applications with Socket.IO, mobile-first theming with Bootstrap, microservice deployment with Docker, authenticating against third-party services using OAuth, and much more.
Table of Contents (18 chapters)
Node.js Web Development Third Edition
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

ES-2015 Promises and Express router functions


Before we get into developing our application, we have another new ES-2015 feature to discuss—the Promise class. Promise objects are used for deferred and asynchronous computation. A Promise class represents an operation that hasn't completed yet, but is expected to be completed in the future.

In Chapter 1, About Node.js, we briefly discussed the Promise class while discussing Node.js's asynchronous execution model. Since Node.js was designed before the Promise class, the Node.js community follows a different convention for writing asynchronous code; this is the callback function. Those callback functions are called to perform any kind of deferred or asynchronous computation.

The Promise class approaches the same problem from a different angle. It has one large advantage in avoiding the so-called Pyramid of Doom that's inevitable with deeply nested callback functions.

Promises are just one way to work around this so-called callback hell. Over...