Book Image

The Node Craftsman Book

By : Manuel Kiessling
Book Image

The Node Craftsman Book

By: Manuel Kiessling

Overview of this book

The Node Craftsman Book helps JavaScript programmers with basic Node.js knowledge to now thoroughly master Node.js and JavaScript. This book dives you deeper into the craft of software development with Node.js and JavaScript, incuding object-orientation, test-driven development, database handling, web frameworks, and much more. The Node Craftsman Book shows you how to work with Node.js and how to think deeply about how you build your Node projects. You'll master how to build a complete Node.js application across six crafting milestones, and you'll learn many specific skills to achieve that mastery. These skills include how to work with the Node Package Manager in depth, how to connect your Node applications to databases, and how to write unit tests and end-to-end tests for your code. You'll experience the full Node.js development picture, and learn how to craft and control your Node.js applications - right through to fully-fledged web applications using REST, and integration with Angular applications.
Table of Contents (17 chapters)
Free Chapter
1
Part 1: Node.js Basics in Detail
2
Working with NPM and Packages
3
Test-driven Node.js Development
11
Milestone 1 – A First Passing Test Against the Server
13
Milestone 3 – Setting the Stage for a Continuous Delivery Workflow

Blocking and non-blocking operations

From the understanding of this conceptual model, we can get to understanding the difference between blocking and non-blocking operations.

The key to understanding these is the realization that every synchronous operation results in a blocking operation. That's right, even an innocent console.log('Hello World'); results in a blocking operation while the Node.js process writes the text to the screen, this is the only thing that it does. There is only one single piece of JavaScript code that can be executed within the event loop at any given time.

The reason this doesn't result in a problem in the case of a console.log() is that it is an extremely cheap operation. In comparison, even the most simple IO operations are way more expensive. Whenever the network or hard drives (yes, including SSDs) are involved, expect things to be incredibly much slower...