You are previewing Pro Node.js for Developers.
O'Reilly logo
Pro Node.js for Developers

Book Description

Since it's creation in 2009, Node.js has grown into a powerful and increasingly popular asynchronous-development framework for creating highly-scalable network applications using JavaScript. Respected companies such as Dow Jones and LinkedIn are among the many organizations to have seen Node's potential and adopted it into their businesses.

Pro Node.js for Developers provides a comprehensive guide to this exciting new technology. We introduce you to Node – what it is, why it matters and how to set it up – before diving deeply into the key concepts and APIs that underpin its operation.

Building upon your existing JavaScript skills you'll be shown how to use Node.js to build both Web- and Network-based applications, to deal with data sources, capture events and deal with child processes to create robust applications that will work well in a wide range of circumstances.

Once you've mastered these skills we'll go further, teaching you more advanced software engineering skills that will give your code a professional edge. You'll learn how to create easily reusable modules that will save you time through code reuse, to log and debug your applications quickly and effectively and to write code that will scale easily and reliably as the demand for your application grows.

What you'll learn

  • Install, configure and deploy Node.js apps effectively

  • Understand the Node.js asynchronous programming model in detail

  • Create both web and network-based Node.js applications with ease

  • Learn to work effectively with varied data sources and file types

  • Discover advanced software engineering concepts that will will save you time and promote code reuse

Who this book is for

This book is for developers who already have a working knowledge of JavaScript and are interested in adopting Node.js into their projects. All other concepts will be introduced from first-principals.

Table of Contents

  1. Title Page
  2. Dedication
  3. Contents at a Glance
  4. Contents
  5. About the Author
  6. About the Technical Reviewer
  7. Acknowledgments
  8. Introduction
  9. CHAPTER 1: Getting Started
    1. The Node Execution Model
    2. Installing Node
    3. The Read-Eval-Print-Loop
    4. Executing Node Programs
    5. Summary
  10. CHAPTER 2: The Node Module System
    1. Installing Packages
    2. The require( ) Function
    3. The package.json File
    4. A Complete Example
    5. Module Authoring
    6. Summary
  11. CHAPTER 3: The Node Programming Model
    1. Asynchronous Programming
    2. Exception Handling
    3. The async Module
    4. Summary
  12. CHAPTER 4: Events and Timers
    1. Event Emitters
    2. Timers and Scheduling
    3. Summary
  13. CHAPTER 5: The Command Line Interface
    1. Command Line Arguments
    2. The Standard Streams
    3. Signal Events
    4. User Environment Variables
    5. Summary
  14. CHAPTER 6: The File System
    1. Relevant Paths
    2. The path Module
    3. The fs Module
    4. Summary
  15. CHAPTER 7: Streams
    1. What Are Streams?
    2. Working with Streams
    3. Readable Streams
    4. Writable Streams
    5. Pipes
    6. File Streams
    7. Compression Using the zlib Module
    8. Summary
  16. CHAPTER 8: Binary Data
    1. An Overview of Binary Data
    2. The Typed Array Specification
    3. Node Buffers
    4. Summary
  17. CHAPTER 9: Executing Code
    1. The child_process Module
    2. Summary
  18. CHAPTER 10: Network Programming
    1. Sockets
    2. Client-Server Programming
    3. Transmission Control Protocol
    4. User Datagram Protocol
    5. Domain Name System
    6. Summary
  19. CHAPTER 11: HTTP
    1. A Basic Server
    2. Anatomy of an HTTP Request
    3. Working with Cookies
    4. Middleware
    5. Issuing HTTP Requests
    6. HTTPS
    7. Summary
  20. CHAPTER 12: The Express Framework
    1. Express Routes
    2. Creating an Express Application
    3. Templating
    4. express-validator
    5. REST
    6. Summary
  21. CHAPTER 13: The Real-Time Web
    1. The WebSockets API
    2. WebSockets in Node
    3. Socket.IO
    4. Summary
  22. CHAPTER 14: Databases
    1. Relational Databases
    2. MySQL
    3. NoSQL Databases
    4. MongoDB
    5. Summary
  23. CHAPTER 15: Logging, Debugging, and Testing
    1. Logging
    2. Debugging
    3. Testing
    4. Summary
  24. CHAPTER 16: Application Scaling
    1. The cluster Module
    2. Scaling Across Machines
    3. Scaling in the Cloud
    4. Summary
  25. APPENDIX A: JavaScript Object Notation
    1. Supported Data Types
    2. Functions for Working with JSON
    3. Summary
  26. Index