My Review of Node for Front-End Developers

Originally submitted at O’Reilly

Writing Server-Side JavaScript Applications

Or… Prototyping with Node.js

By Jim Schubert from Richmond, VA on 2/11/2012


4out of 5

Pros: Well-written, Easy to understand, Concise, Accurate, Helpful examples

Cons: Too short

Best Uses: Student, Novice

Describe Yourself: Software Engineer

I’ve reviewed “Node for Front-End Developers” for the O’Reilly blogger program. Because I’ve been contributing to an open-source Node.js ebook, I was very excited to read this book. I must warn you– this book is less about Node.js than it is about prototyping web applications using modules available in Node.js. If you begin reading this from that perspective and you have little knowledge of Node.js in general, you will gain a lot from reading this. If, however, you have experience with Node.js and have used frameworks such as Express and Connect, there is not much more covered in these 58 pages.

Garann Means has written this book in a great way. She doesn’t start off explaining the Express framework like most introductions to Node.js would have done. Instead, she shows how to create a minimal http server, add templating and middleware, and then discusses Express and separating concerns into an MVC or MVC-like pattern.

There are a few times where I think the terminology could be misleading. For example, at the beginning she talks about ‘scaffolding’. Scaffolding in general implies code generation and the only bit of true scaffolding discussed in the book occurs on one line in one of the last few chapters when the Express framework generates an empty application. I would have liked to see some true ‘scaffolding’ examples, either with code specific to the book or with third-party modules. Aside from one or two other terminology issues (which is probably just me being picky), the content is spot-on.

Garann does talk about asynchronous operations a little, but this is a huge area of concern for front-end and back-end developers when migrating to Node.js because the asynchronous and event-driven nature of common tasks (files, database) can often increase the complexity of a simple task. Had she expanded on the asynchronous nature of Node.js more, I would have given this book five stars. She does offer a caveat in the Postscript that this book doesn’t cover all there is to know about Node.js, and she’s right. Before or after reading this, you should read the introduction in the Node.js documentation and the Express framework’s documentation.

In conclusion, this is an excellent introduction to prototyping web applications using Node.js. I would recommend this book to people who are familiar with JavaScript programming and want to being prototyping without the need to learn additional languages and frameworks like Ruby on Rails, Catalyst, ASP.NET MVC, etc.