If you know how to use JavaScript in the browser, you already have the skills you need to put JavaScript to work on back-end servers with Node. This hands-on book shows you how to use this popular JavaScript platform to create simple server applications, communicate with the client, build dynamic pages, work with data, and tackle other tasks. Although Node has a complete library of developer-contributed modules to automate server-side development, this book will show you how to program with Node on your own, so you truly understand the platform. Discover firsthand how well Node works as a web server, and how easy it is to learn and use.
I've dabbled with Node a bit prior to this book. I've also been writing large scale JavaScript applications for a while so most of the concepts in this book are not new to me.
What this very short book provided me is a crash course in how to use Node to spin up a web server from scratch. Being familiar with both client side and server side development, my experience with Node already surpassed this book; however, reflecting on how the author steps a person through the process without any frameworks (initially) is nice to see.
There were a couple things that I didn't like about this book:
1. It's short because it assumes a lot. The author writes assuming the reader has knowledge of working with maintainable, large scale JavaScript code on the client side; however, from working with the dev community, I'd say this is actually a minority. While the PubSub pattern of development has been around for a while, I do not know many JavaScript developers that would be able to show an example of such.
2. Some subtopics feel forced. The author focuses a lot of a number of different technologies in addition to Node. Socket.Io, Redis, Jade, Express, Require.JS, and Backbone are the major ones. While the information is good, how they were added feels more like an after thought to increase the page count. These additional subtopics also made the flow a bit off to me. We have building with Node from scratch, then using Connect, then we talk about Mustache and instead of keeping with structure, it jumps to Socket.Io and then Redis. I understand the rationale since Backbone and Express were used to illustrate a "putting it all together"-like chapter on MVC, it still felt off.
3. One of the biggest things I hoped to get out the book was understanding module creation better and specifically how to possibly share modules between client and server. Thankfully, this was addressed on the last page of the book; however, how to package a module to be submitted for NPM wasn't. This is more of me having higher expectations on the information in the book than what's truly in there.
Would I recommend this book? - Absolutely.
Was I the target audience for this book? - Probably not since I had already been playing around with Node prior to reading it.
If you are a front end developer with very little knowledge of server side development - this book will be a decent fit for you. If you have decent knowledge of both sides of development and multiple different environments (i.e. .Net, Ruby on Rails, Sinatra, Django, etc) then you may not get as much out of this book.
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.
This book is good for a certain audience who want to get a quick overview of writing the server side of web applications in Node but isn't very up-to-date or comprehensive. The book covers several popular modules (Connect, Express, Mustache, Redis, core libraries like fs and http), which is great, but some have changed their APIs so much that the code samples are broken (e.g. connect.router doesn't exist anymore, the Streams API has totally changed but does retain backward compatibility). O'Reilly's "unconfirmed errata" for the book is a good place to go for fixes to these problems. As an overview of things like Connect, templating, and flow control it's decent. I would have liked more on using NPM (including the basics of publishing a package), writing command-line tools, and structuring applications. Also, Grunt. Not mentioning Grunt is a big oversight. The book's biggest strength is that the author typically walks you through writing an example using native modules, then shows you how to accomplish a more robust version with an NPM package. While it assumes some JavaScript knowledge, most people with just a little client-side experience could read the whole book without trouble. If you've never worked on the server side at all, you'll be fine. In fact, it may be easier to approach some topics (e.g. database access) without preconceptions of how the code should work. Overall, it's tough to write tech books on current and mutable topics. The Internet has an advantage here. One would be better suited looking up specific tutorials, which will likely be more current and can also address specific topics of interest (e.g. if you wanted to use CouchDB or MongoDB instead of Redis, you could find a tutorial on that). If this book was more in-depth and kept current, it would better compete with web tutorials.
What I liked most about Node for Front-End Developers is the same thing that I liked most about Stoyan Stefanov's JavaScript Patterns: Means tries to stay as close to the bare-bones as possible, and not get too mixed up in frameworks, libraries, and modules. (That being said, after showing you how to do what Connect does, she then uses the Connect module as a short-hand for "that".) The emphasis here is on using Node as a web application server, and for serving that content over HTTP; I'd have liked to see a bit more about using Node for command-line utilities etc., but then it wouldn't have been so short. (And I say "short" as a good thing here; I was able to read it in a day, and that is more/less exactly how this kind of intro book should go.)
Would I recommend it to other front-end developers? Yes, but with the caveat that it'll get you up and running, and not much else. You'll soon be after more, and more detailed, information.
I started reading this book with the hopes to get a good understanding of how to work with Node in a short amount of time. However, this book just proved to be a waste of my time. Its kind of a cookbook but not really a good one. I got the feeling that the author wanted to prepare some notes on how she used Node in her projects and went ahead and published all the notes in a book. The books assumes that the readers already know Node and most of the API calls are not discussed in any detail apart from a single example that they are used in. The book "might" prove helpful to people who already know Node but for beginners, its totally not the right book to start off. Thumbs down for this one.
An extremely fast but through read. This book won't make you an expert but will give you a decent overview of how a Node application works, while comparing Node code with and without popular modules. It also covers most introductory Node topics including the Node HTTP request cycle, working with GET and POST data, templates, data sources and MVC. An updated edition of this book for the current version of Node would be nice considering the very topical nature of this title. Overall a recommended read at least until the examples in the book are still relevant.
Simple, short and concise introduction of Node.js for Front-End developers. It includes tons of little code examples that helps you grab the idea of how things work with Node
This was a good introduction, but (at least in ePub) the code samples needed some formatting love. The code wasn���t complex by any means, it was just hard to read, which made it difficult to follow.