nodeJS-Professionals
nodeJS-Professionals copied to clipboard
Node.js Notes :heart:
NodeJS Notes For Professionals
Table of Contents
-
Chapter 1: Getting started with Node.js
- Section 1.1: Hello World HTTP server
- Section 1.2: Hello World command line
- Section 1.3: Hello World with Express
- Section 1.4: Installing and Running Node.js
- Section 1.5: Debugging Your NodeJS Application
- Section 1.6: Hello World basic routing
- Section 1.7: Hello World in the REPL
- Section 1.8: Deploying your application online
- Section 1.9: Core modules
- Section 1.10: TLS Socket: server and client
- Section 1.11: How to get a basic HTTPS web server up and running!
-
Chapter 2: npm
- Section 2.0: Basic
- Section 2.1: Installing packages
- Section 2.2: Uninstalling packages
- Section 2.3: Setting up a package configuration
- Section 2.4: Running scripts
- Section 2.5: Basic semantic versioning
- Section 2.6: Publishing a package
- Section 2.7: Removing extraneous packages
- Section 2.8: Listing currently installed packages
- Section 2.9: Updating npm and packages
- Section 2.10: Scopes and repositories
- Section 2.11: Linking projects for faster debugging and development
- Section 2.12: Locking modules to specific versions
- Section 2.13: Setting up for globally installed packages
-
Chapter 3: Web Apps With Express
- Section 3.0: Basic
- Section 3.1: Getting Started
- Section 3.2: Basic routing
- Section 3.3: Modular express application
- Section 3.4: Using a Template Engine
- Section 3.5: JSON API with ExpressJS
- Section 3.6: Serving static files
- Section 3.7: Adding Middleware
- Section 3.8: Error Handling
- Section 3.9: Getting info from the request
- Section 3.10: Error handling in Express
- Section 3.11: Hook: How to execute code before any req and after any res
- Section 3.12: Setting cookies with cookie-parser
- Section 3.13: Custom middleware in Express
- Section 3.14: Named routes in Django-style
- Section 3.15: Hello World
- Section 3.16: Using middleware and the next callback
- Section 3.17: Error handling
- Section 3.18: Handling POST Requests
-
Chapter 4: Filesystem I/O
- Section 4.1: Asynchronously Read from Files
- Section 4.2: Listing Directory Contents with readdir or readdirSync
- Section 4.3: Copying files by piping streams
- Section 4.4: Reading from a file synchronously
- Section 4.5: Check Permissions of a File or Directory
- Section 4.6: Checking if a file or a directory exists
- Section 4.7: Determining the line count of a text file
- Section 4.8: Reading a file line by line
- Section 4.9: Avoiding race conditions when creating or using an existing directory
- Section 4.10: Cloning a file using streams
- Section 4.11: Writing to a file using writeFile or writeFileSync
- Section 4.12: Changing contents of a text file
- Section 4.13: Deleting a file using unlink or unlinkSync
- Section 4.14: Reading a file into a Buer using streams
-
Chapter 5: Exporting and Consuming Modules
- Section 5.1: Creating a hello-world.js module
- Section 5.2: Loading and using a module
- Section 5.3: Folder as a module
- Section 5.4: Every module injected only once
- Section 5.5: Module loading from node_modules
- Section 5.6: Building your own modules
- Section 5.7: Invalidating the module cache
-
Chapter 6: Exporting and Importing Module in node.js
- Section 6.1: Exporting with ES6 syntax
- Section 6.2: Using a simple module in node.js
-
Chapter 7: How modules are loaded
- Section 7.1: Global Mode
- Section 7.2: Loading modules
-
Chapter 8: Cluster Module
- Section 8.1: Hello World
- Section 8.2: Cluster Example
-
Chapter 9: Readline
- Section 9.1: Line-by-line file reading
- Section 9.2: Prompting user input via CLI
-
Chapter 10: package.json
- Section 10.1: Exploring package.json
- Section 10.2: Scripts
- Section 10.3: Basic project definition
- Section 10.4: Dependencies
- Section 10.5: Extended project definition
-
Chapter 11: Event Emitters
- Section 11.1: Basics
- Section 11.2: Get the names of the events that are subscribed to
- Section 11.3: HTTP Analytics through an Event Emitter
- Section 11.4: Get the number of listeners registered to listen for a specific event
-
Chapter 12: Autoreload on changes
- Section 12.1: Autoreload on source code changes using nodemon
- Section 12.2: Browsersync
-
Chapter 13: Environment
- Section 13.1: Accessing environment variables
- Section 13.2: process.argv command line arguments
- Section 13.3: Loading environment properties from a "property file"
- Section 13.4: Using dierent Properties/Configuration for different environments like dev, qa, staging etc
-
Chapter 14: Callback to Promise
- Section 14.1: Promisifying a callback
- Section 14.2: Manually promisifying a callback
- Section 14.3: setTimeout promisified
-
Chapter 15: Executing files or commands with Child Processes
- Section 15.1: Spawning a new process to execute a command
- Section 15.2: Spawning a shell to execute a command
- Section 15.3: Spawning a process to run an executable
-
Chapter 16: Exception handling
- Section 16.1: Handling Exception In Node.Js
- Section 16.2: Unhanded Exception Management
- Section 16.3: Errors and Promises
-
Chapter 17: Keep a node application constantly running
- Section 17.1: Use PM2 as a process manager
- Section 17.2: Running and stopping a Forever daemon
- Section 17.3: Continuous running with nohup
-
Chapter 18: Uninstalling Node.js
- Section 18.1: Completely uninstall Node.js on Mac OSX
- Section 18.2: Uninstall Node.js on Windows
-
Chapter 19: nvm - Node Version Manager
- Section 19.1: Install NVM
- Section 19.2: Check NVM version
- Section 19.3: Installing an specific Node version
- Section 19.4: Using an already installed node version
- Section 19.5: Install nvm on Mac OSX
- Section 19.6: Run any arbitrary command in a subshell with the desired version of node
- Section 19.7: Setting alias for node version
-
Chapter 20: http
- Section 20.1: http server
- Section 20.2: http client
-
Chapter 21: Using Streams
- Section 21.0: Streams Type
- Section 21.1: Read Data from TextFile with Streams
- Section 21.2: Piping streams
- Section 21.3: Creating your own readable/writable stream
- Section 21.4: Why Streams?
-
Chapter 22: Deploying Node.js applications in production
- Section 22.1: Setting NODE_ENV="production"
- Section 22.2: Manage app with process manager
- Section 22.3: Deployment using process manager
- Section 22.4: Deployment using PM2
- Section 22.5: Using dierent Properties/Configuration for different environments like dev, qa, staging etc
- Section 22.6: Taking advantage of clusters
-
Chapter 23: Securing Node.js applications
- Section 23.1: SSL/TLS in Node.js
- Section 23.2: Preventing Cross Site Request Forgery (CSRF)
- Section 23.3: Setting up an HTTPS server
- Section 23.4: Using HTTPS
- Section 23.5: Secure express.js 3 Application
-
Chapter 24: Mongoose Library
- Section 24.1: Connect to MongoDB Using Mongoose
- Section 24.2: Find Data in MongoDB Using Mongoose, Express.js Routes and $text Operator
- Section 24.3: Save Data to MongoDB using Mongoose and Express.js Routes
- Section 24.4: Find Data in MongoDB Using Mongoose and Express.js Routes
- Section 24.5: Useful Mongoose functions
- Section 24.6: Indexes in models
- Section 24.7: find data in mongodb using promises
-
Chapter 25: async.js
- Section 25.1: Parallel : multi-tasking
- Section 25.2: async.each(To handle array of data effciently)
- Section 25.3: Series : independent mono-tasking
- Section 25.4: Waterfall : dependent mono-tasking
- Section 25.5: async.times(To handle for loop in better way)
- Section 25.6: async.series(To handle events one by one)
-
Chapter 26: File upload
- Section 26.1: Single File Upload using multer
- Section 26.2: Using formidable module
-
Chapter 27: Socket.io communication
- Section 27.1: "Hello world!" with socket messages
-
Chapter 28: Mongodb integration
- Section 28.1: Simple connect
- Section 28.2: Simple connect, using promises
- Section 28.3: Connect to MongoDB
- Section 28.4: Insert a document
- Section 28.5: Read a collection
- Section 28.6: Update a document
- Section 28.7: Delete a document
- Section 28.8: Delete multiple documents
-
Chapter 29: Handling POST request in Node.js
- Section 29.1: Sample node.js server that just handles POST requests
-
Chapter 30: Simple REST based CRUD API
- Section 30.1: REST API for CRUD in Express 3+
-
Chapter 31: Template frameworks
- Section 31.1: Nunjucks
-
Chapter 32: Node.js Architecture & Inner Workings
- Section 32.1: Node.js - under the hood & Node.js - in motion
-
Chapter 33: Debugging Node.js application
- Section 33.1: Core node.js debugger and node inspector
-
Chapter 34: Node server without framework
- Section 34.1: Framework-less node server
- Section 34.2: Overcoming CORS Issues
-
Chapter 35: Node.JS with ES6
- Section 35.1: Node ES6 Support and creating a project with Babel
- Section 35.2: Use JS es6 on your NodeJS app
-
Chapter 36: Interacting with Console
- Section 36.1: Logging
-
Chapter 37: Cassandra Integration
- Section 37.1: Hello world
-
Chapter 38: Creating API's with Node.js
- Section 38.1: GET api using Express
- Section 38.2: POST api using Express
-
Chapter 39: Graceful Shutdown
- Section 39.1: Graceful Shutdown - SIGTERM
-
Chapter 40: Using IISNode to host Node.js Web Apps in IIS
- Section 40.1: Using an IIS Virtual Directory or Nested Application via <appSettings>
- Section 40.2: Getting Started
- Section 40.3: Basic Hello World Example using Express
- Section 40.4: Using Socket.io with IISNode
-
Chapter 41: CLI
- Section 41.1: Command Line Options
-
Chapter 42: NodeJS Frameworks
- Section 42.1: Web Server Frameworks
- Section 42.2: Command Line Interface Frameworks
-
Chapter 43: grunt
- Section 43.1: Introduction To GruntJs
- Section 43.2: Installing gruntplugins
-
Chapter 44: Using WebSocket's with Node.JS
- Section 44.1 to 44.4
-
Chapter 45: metalsmith
- Section 45.1: Build a simple blog
-
Chapter 46: Parsing command line arguments
- Section 46.1: Passing action (verb) and values
- Section 46.2: Passing boolean switches
-
Chapter 47: Client-server communication
- Section 47.1: /w Express, jQuery and Jade
-
Chapter 48: Node.js Design Fundamental
- Section 48.1: The Node.js philosophy
-
Chapter 49: Connect to Mongodb
- Section 49.1: Simple example to Connect mongoDB from Node.JS
- Section 49.2: Simple way to Connect mongoDB with core Node.JS
-
Chapter 50: Performance challenges
- Section 50.1: Processing long running queries with Node
-
Chapter 51: Send Web Notification
- Section 51.1: Send Web notification using GCM ( Google Cloud Messaging System)
-
Chapter 52: Remote Debugging in Node.JS
- Section 52.1 to 52.3
-
Chapter 53: Database (MongoDB with Mongoose)
- Section 53.1: Mongoose connection
- Section 53.2: Model
- Section 53.3: Insert data
- Section 53.4: Read data
-
Chapter 54: Good coding style
- Section 54.1: Basic program for signup
-
Chapter 55: Restful API Design: Best Practices
- Section 55.1: Error Handling: GET all resources
-
Chapter 56: Deliver HTML or any other sort of file
- Section 56.1: Deliver HTML at specified path