Node.js is a platform for doing network applications using JavaScript on the client and server. Basically, it's like an Apache web server, written in C, and using the Chrome browser's JavaScript engine. The community is well-developed and there are many pre-written 'modules'. See the wikipedia article for more.
Links
- Node.js official website
- Node.js API docs
- npm - the official package manager for Node.js
- nvm - Node Version Manager. A bash script to manage multiple active node.js versions. Although the packaged node.js for Ubuntu 12.04 is rather old, nvm allows you to instantly use the newest version; and use multiple versions (if your projects have certain dependencies) without problem.
- nodejs modules
- Felix's Node.js Guide
- Learnable.com has an intro to node.js course which is valuable.
- Node School
- Socket.io a node.js module for WebSockets
- Express - a web application framework for node
- NeDB Node embedded database similar to MongoDB
- AngularJS - a 100% JavaScript client-side templating framework that provides data binding. Not related to node.js, but useful on the client-side.
- nipster search for npm modules
Front-end Build Tools
When doing nodejs development or front-end development, you may also wish to employ some sort of build system or task runner for performing repetitive tasks like minification, compilation, unit testing, linting, etc.
- While many people have been using 'Grunt'
- I like 'Gulp' better because it's code over configuration and more intuitive.
- Meanwhile, Andrew Krespanis of SitePoint shows a great example of how you can simply use GNU Make for a front-end development build tool
Node Happenings
The people of Node (e.g. Mikeal Rogers) are doing a lot of interesting things. Like JSFest which happened in SanFrancisco 2014, or Node school.