Node For Front-End Developers By Garann Means

Posted March 2, 2012 at 10:41 AM by Ben Nadel

Tags: Books

Over the weekend, I read Node For Front-End Developers - Writing Server-Side JavaScript Applications - by Garann Means. At 85 pages, the book is a fairly quick read and offers a really nice introduction to building Node.js applications. Since the Node.js technology is much closer to the "metal", it mandates much less structure than your typical application server. This offers you a great amount of control over how your server-side application operates; but, at the same time, it can leave you frustrated, never sure of how to best get things done. Node For Front-End Developers fills in some of those high-level information gaps, painting the ins-and-outs of Node.js application development with broad strokes.


 
 
 

 
Node.js For Front-End Developers by Garann Means, book review by Ben Nadel.  
 
 
 

I really enjoyed the iterative workflow of this book; it starts out simple and slowly builds each demonstration on the shoulders of the demonstration before it. The book opens with instructions for installing Node.js and NPM (Node Package Manager) as well as using the command-line REPL (Read-Eval-Print-Loop); but, it quickly moves into writing code for your first Node.js application.

Garann Means starts the exploration with a discussion of how to organize your directories. Since Node.js handles every incoming request explicitly, there's no automatic file-serving like you'd have in an Apache or an IIS based application. Again, this gives you complete control, but can leave you wondering if you're doing things in the correct way. Means explains what role directories such as node_modules, lib, and public play in a "best practices" Node.js application. She also talks about the application manifest - package.json - and how to create one.

Then, Means goes on to iteratively explain the request-response lifecycle; how to create dynamic responses; how to server static files; and, how to parse incoming URL and FORM data. Some of these task are then iteratively abstracted away with the introduction of middleware layers like Connect and Express.

Means then goes on to talk about advanced concepts including WebSockets, JSONP (JSON with Padding), server-side templating, connecting to a Redis NoSQL database, the awesomeness of Event Emitters, and Model-View-Controller architectures.

Since the book is only 85 pages long, none of these concepts are explored in overwhelming depth; but the book provides a wonderfully broad look at server-side JavaScript application development with Node.js. At the end, I definitely felt like I had a better understanding of what Node.js applications are, how they are put together, how the core features are executed, and where I could go from here (as far as independent learning is concerned). If you're new to Node.js, this is definitely a recommended read.



Reader Comments

Mar 2, 2012 at 1:34 PM // reply »
4 Comments

Hi Ben,

After seeing your post I was excited about the book but when I went to Amazon it had some bad reviews. One review said it was more like a cookbook - is that right?

Thanks
Dan


Mar 2, 2012 at 1:43 PM // reply »
4 Comments

Oh bollocks I might as well just buy it.


Mar 2, 2012 at 1:49 PM // reply »
11,241 Comments

@Danyal,

I didn't feel it was a Cookbook-style approach. I thought it just covered the foundations of Node.js app development. Frankly, I don't think it's long enough to be Cookbook :)

If you create an account on the O'Reilly media website, I think you can probably get this book for like $4 :)


Mar 4, 2012 at 10:48 PM // reply »
4 Comments

@Ben,

It's ok, got it from Amazon :) Thanks


Post A Comment

Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
May 22, 2013 at 11:07 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
Could your problem be that "users.id" is actually an ARRAY, not a single value? Perhaps try it again with "users.id[1]" (I only have CF8 here at work). ... read »
May 22, 2013 at 7:52 AM
Nested Views, Routing, And Deep Linking With AngularJS
Hi, Just a quick thank you. As it happens, for my own purposes, the pending ui-router work being done in native angular is likely the one I'll adopt, but your exploration, code and documentation of ... read »
May 22, 2013 at 4:43 AM
How Do You Use The ColdFusion CFParam Tag?
'<cfparam>' or 'isDefined()and <cfset>' performs the same task.Is there any difference? ... read »
May 21, 2013 at 7:46 PM
Using Plupload For Drag & Drop File Uploads In ColdFusion
No luck. At least I have uncovered the cause, URLScan 3.1. Here is what I see in the IIS log when a file is over 30mb. 2013-05-21 23:29:05 10.105.45.128 GET /plupload/assets/jquery/jquery-1.8. ... read »
May 21, 2013 at 6:12 PM
Using Plupload For Drag & Drop File Uploads In ColdFusion
Ben, I did not see you after Pete Freitag's Lockdown session at cfObjective but he said that IIS sets file size limits at 30MB by default which just happened to be the threshold for file size when ... read »
May 21, 2013 at 11:51 AM
Ask Ben: Parsing Very Large XML Documents In ColdFusion
Looking at my first ever XML document that I have to parse and put into MS SQL 2000 with CF8. I get it to list the desired Field name, many times over, and have a long list of this field name displa ... read »
May 21, 2013 at 9:25 AM
Turning Off and On Identity Column in SQL Server
you are awesome..i am lucky to get this blog between such a garbage one....Thanks, Prashant ... read »
May 20, 2013 at 4:38 PM
Using A Dynamic Column Name With ValueList() In ColdFusion
@Dana, Your confusion is well founded, since this is a very confusing features. In fact, it ONLY works if you use array notation. Meaning, that this: arrayToList( query[ "columnName" ] ) ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools