/NodeJS-Learning

This page contains collection of curated links to blog posts, articles, videos, tutorials, books, frameworks, modules, IDEs, testing tools, hosting providers, etc. to help you learn Node.js and keep up to date.

MIT LicenseMIT

NodeJS-Learning

![Gitter](https://badges.gitter.im/Join Chat.svg)

Learning node.js made easy. This page contains collection of curated links to blog posts, articles, videos, tutorials, books, frameworks, modules, IDEs, testing tools, hosting providers, etc. to help you learn Node.js and keep up to date.

It was just created and will be actively updated. Please fork and submit your pull-requests, if you would like to contribute. Thanks!

Similar resources in other languages

Chinese - fantastic list of Chinese resources.

Installation

Go to http://nodejs.org/, download node.js installer and follow instructions. Mac OS, Windows, and Linux are supported.

JavaScript

To use Node.js you need to have a decent understanding of JavaScript language.

Development Tools/IDEs

Online

  • Cloud9 - cloud-based IDE with native support for development of Node.js applications including debugging and other features. Note that you can also install it locally.
  • Nitrous.io - is both an IDE and environment in the cloud. Has both online and desktop versions. Paid.
  • Koding - offers you a free rootable VM with Node. Also you can work on the same code with your friends.
  • Cloud IDE (a.k.a eXo Cloud IDE, a.k.a codenvy) - cloud development IDE and environemnt with continuous integration and other features. Offers both hosted and on-premises solutions.

Hosting Providers

  • Nodejitsu - hosting, databases and private NPM. Free for Open Source.
  • OpenShift
  • Heroku - Dead simple to use.
  • Modulus -Scalable application platform (PaaS) for developers, offering Node.js hosting, MongoDB, and performance analytics in the cloud.
  • Codio - Powerful web based IDE, free for public projects

Fundamentals

Asynchronous Programming

Node Package Manager (npm)

Debugging

Tutorials

Authentication

  • Authentication - Goes over local, facebook & twitter authentication.

Command line

Blog posts/articles

Videos

Free Courses

Paid Courses

Free Books

Paid Books

Frameworks

  • Sinatra like:
    • connect - an extensible HTTP server framework for Node.js using "plugins" known as middleware.
    • express.js - a Sinatra inspired Web development framework for Node.js.
    • hapi - a rich framework for building Web applications and services.
    • express.io = Express + Socket.io.
    • koa - an expressive middleware for Node.js using generators.
    • Flatiron - framework components for Node.js and a browser.
    • total.js - a Web application framework for creating rich Web sites and Web services.
  • MVC:
    • Geddy - a simple, structured Web framework for Node.js.
    • Sails.js - a realtime MVC Framework for Node.js.
    • Compound - the compound formula is Express + Structure + Extensions.
  • Full stack:
    • meteor.js - Meteor is an ultra-simple environment for building modern Web applications. Built using Node.js, Meteor is a framework on its own. Please see an amazing list of Meteor resources for more information.
    • Derby - the MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
    • SocketStream - A fast, modular Node.js Web framework dedicated to building realtime single-page applications.

If you would like to learn more about Node.js frameworks, please visit nodeframework.com and nodewebmodules.com.

CLI TOOLS

CMS

Static Site Generators

  • Hexo - fast, simple & powerful blog framework.
  • Metalsmith - extremely simple, pluggable static site generator.
  • Harp - static web server with built-in preprocessing.
  • Assemble - static site generator for Grunt.js, Yeoman and Node.js.
  • Wheat - a blog engine for coders written in node.JS.
  • Punch - a fun and easy way to build modern websites.
  • Blacksmith - generic static site generator built using flatiron, plates, and marked.
  • Poet - a node.js blog engine.

See extensive collection of Static Site Generators including other languages at http://www.staticgen.com/

Libraries

  • socket.io - a realtime application framework for Node.JS, with HTML5 WebSockets and cross-browser fallbacks support.
  • mongoose - MongoDB object modeling designed to work in an asynchronous environment.
  • winston - a multi-transport asynchronous logging library for Node.js
  • passport - simple, unobtrusive authentication for Node.js.
  • async - asynchronous utilities for Node and the browser.
  • Q - a tool for making and composing asynchronous promises in JavaScript.
  • co - the ultimate generator based flow-control goodness for nodejs;
  • jade - Jade - a robust, elegant, feature-rich template engine for Node.js.
  • ejs - embedded JavaScript templates for Node.js.
  • lodash - a utility library delivering consistency, customization, performance, and extras.
  • request - a simplified HTTP request client.
  • config - a runtime configuration for Node.js. modules.

Authentication and Security

  • Passport - simple, unobtrusive authentication for Node.js that supports OpenID and OAuth.

Testing

Read about various approaches to testing Node.js code:

Some popular testing frameworks:

  • mocha - a simple, flexible JavaScript test framework for Node.js and a browser. (BDD, TDD, QUnit styles via interfaces).
  • jasmin-node - integration of the Jasmine Spec framework with Node.js.
  • sinon - test spies, stubs, and mocks for JavaScript.
  • chai - a BDD / TDD assertion framework for Node.js and a browser.
  • supertest - a super-agent driven library for testing Node.js HTTP servers using a fluent API.
  • rewire - a dependency injection for Node.js applications.
  • node-jscoverage - JSCoverage for Node.js.

Keep up to date

What To Read

Communities/Groups

Blogs/News

  • "How To Node" blog
  • Node.js Weekly - an email list that gathers up the latest events and news from around the Node.js community.
  • NodeUp - a podcast covering the latest Node news in the community.

Who to Follow

Node mavens

You can find the most famous Node.js developer at Nodemavens.

Resource

Credits

Inspired by amazing AngularJS-Learning

Contributors

License

(The MIT License)

Copyright (c) 2014 Sergey Titov

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.