Node Cookbook is great for deeper understanding of Node.js programming

Date: Thu Jun 15 2017 Reviews »»»» Security »»»» Node.JS »»»» Web Development »»»» Node Web Development »»»» Books
Have you heard that Node.js is an up-and-coming software development platform?  Maybe you've read an introductory book to Node.js, like my book Node Web Development (see link in sidebar), but want something more in-depth?  A new book, Node Cookbook, fits the bill in providing a more in-depth study of using Node.js for software development, while assuming you're already familiar with the basics of Node.

The book is written in the "Cookbook" format, meaning that it is a series of "recipes" with an overall theme per chapter.  Each recipe starts with the task at hand, and ends with a discussion if why/how/theory.  This format works for some kind of people, and not for others.  The author of this book carries out this pattern fairly well and you learn a lot in each recipe.

The book contains a fairly complete tour of many aspects of developing typical applications with Node.js.  Namely:-

  • Making a web server:- Most of Node applications are web apps, making the HTTP Server object a core part of a Node developer's life.  
  • Exploring the HTTP Object:- More in-depth look, including its use as a client to an HTTP server.
  • Working with Data Serialization:- Covers both JSON and XML for data exchanges.
  • Interfacing with Databases:- CSV, SQL & MySQL, MongoDB, Mongoskin, CouchDB/Cradle, Redis.
  • Transcending AJAX: Using WebSockets:- This is about pseudo-realtime interaction with a web browser using WebSockets, and since that protocol isn't supported by all browsers the chapter also goes over socket.io.
  • Accelerating Development with Express:- All aspects of using the Express framework to build a web application.
  • Implementing Security, Encryption and Authentication:- Security and authentication is an absolute must for preventing abuse of the web or security threats on the web.
  • Integrating Network Paradigms:- Node.js isn't just for web applications, it has built-in support to implement any network protocol.  The chapter goes over sending e-mail, SMS, SMTP, and the virtual hosting paradigm.
  • Writing Your Own Node Modules:- Goes over npm and the Node module format.
  • Taking it Live:- Hosting an application on a Platform as a Service (PaaS) provider.
The chapter on security and authentication is information that's vital to understand and to bake into your applications.  I touched briefly on this in Node Web Development, but the format/scope of that book didn't allow deep enough coverage.  

One of the core attributes Node.js offers is rapid efficient handling of requests, making it a great platform for developing applications with high interactivity between code in a web browser, and code on a server.  The chapter on WebSockets offers a good foundation for launching yourself into that world.

Node.js has built-in support for developing any network protocol, even though it's mostly presented as a Web Application development platform.  The chapter on Network Paradigms is a good start at explaining this to a developer, but this chapter somewhat misses the mark.  

The chapter on writing Node modules is basic information the reader should already know, and for example is covered in Node Web Development.  I do not understand the placement of this chapter at the end of the book when it is really basic knowledge required for bootstrapping a developer into being a Node developer.

Overall this is a very good book covering programming in Node, and is a great follow-up book from introductory material like my own book.