- Introduction - [[njsetn:welcome]] - [[njsetn:What you should know]] - [[njsetn:Installing dependencies]] - What Is Node.js? - [[njsetn:Node.js history]] - [[njsetn:How Node.js works]] - Installing Node.js - [[njsetn:Installing Node.js on a Mac]] - [[njsetn:Installing Node.js on a PC]] - Node Core - [[njsetn:The global object]] - [[njsetn:Argument variables with process.argv]] - [[njsetn:Standard input and standard output]] - [[njsetn:Global timing functions]] - Node Modules - [[njsetn:Core modules]] - [[njsetn:Collecting information with Readline]] - [[njsetn:Handling events with EventEmitter]] - [[njsetn:Exporting custom modules]] - [[njsetn:Creating child process with exec]] - [[njsetn:Creating child process with spawn]] - The File System - [[njsetn:Listing directory files]] - [[njsetn:Reading files]] - [[njsetn:Writing and appending files]] - [[njsetn:Directory creation]] - [[njsetn:Renaming and removing files]] - [[njsetn:Renaming and removing directories]] - [[njsetn:Readable file streams]] - [[njsetn:Writable file streams]] - The HTTP Module - [[njsetn:Making a request]] - [[njsetn:Building a web server]] - [[njsetn:Serving files]] - [[njsetn:Serving JSON data]] - [[njsetn:Collecting POST data]] - Node Package Manager - [[njsetn:Installing npms locally]] - [[njsetn:Installing npms globally on a Mac]] - [[njsetn:Installing npms globally on a PC]] - [[njsetn:File servers with httpster]] - Web Servers - [[njsetn:The package.json file]] - [[njsetn:Intro to Express]] - [[njsetn:Express routing and CORS]] - [[njsetn:Express post bodies and params]] - WebSockets - [[njsetn:Creating a WebSocket server]] - [[njsetn:Broadcasting messages with WebSockets]] - [[njsetn:Creating WebSockets with Socket.IO]] - Testing and Debugging - [[njsetn:Testing with mocha and Chai]] - [[njsetn:Asynchronous mocha testing]] - [[njsetn:Mocking a server with Nock]] - [[njsetn:Injecting dependencies with rewire]] - [[njsetn:Advanced testing Sinon spies]] - [[njsetn:Advanced testing Sinon stubs]] - [[njsetn:Code coverage with Istanbul]] - [[njsetn:Testing HTTP endpoints with Supertest]] - [[njsetn:Checking server responses with Cheerio]] - Automation and Deployment - [[njsetn:Hinting your code with Grunt]] - [[njsetn:Converting LESS to CSS with Grunt]] - [[njsetn:Bundling client scripts with Browserify]] - [[njsetn:Rapid development with Grunt Watches]] - [[njsetn:Automation with npm]] - [[njsetn:Debugging with npm]] - Conclusion - [[njsetn:Next steps]]