What is Node.js? Node.js (node) is a tool that lets you run JavaScript outside of a browser. It is also a library which allows you to download and manage external code (modules) in your projects. Node comes with it's own core modules, but to extend its functionality you will use modules contributed by the community via the node package manager (npm).
Why node? If you are already know JavaScript, you can build a full stack app quicker because you won't have to learn a new server side language. Also, node is good for building applications that require network comnunication or need to update data in real time.
This tutorial is designed to teach you node by building an example app. Each lesson builds upon the previous lesson and will allow you to apply what you have learned with hands on exercises. This tutorial assumes you have knowlege of JavaScript (programming fundamentals, higher order functions, callbacks), git, and using a terminal.
- Part one: Getting Started - Deploy a hello world app to heroku
- Part two: Web Servers - How the internet works
- Part three: Modules - Patterns and object oriented design, unit testing
- Part four: Routing - Express, Hapi, and RESTful API design
- Part five: Testing - Mocha, SuperAgent, and Postman
- Part six: Databases - MongoDB, Cassandra, PostgreSQL, OracleDB, and Redis
- Part seven: Auth - Authentication and authorization
- Part eight: Templating - View engines, front end frameworks, and MVC architecture
- Part nine: Deployment - Build tools, continuous integration, and hosting
- Part ten: Putting it all together - Development workflow, software development life cycle