By: +David Herron; Date: 2012-10-31 12:53
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.