Monday, 23 April 2012

Node.js Resources

Recently I blogged about getting started with Node.js and over the next few months I will be delving deeper into the world of Node.js. Before I do that though, I thought I would share what has helped me to learn Node.js and the resources available. I will also list the popular packages available to make your life easier along with some cool ones I've found. So without further ado let’s get started.

The primary resource for all Node.js is the documentation, this can be found on the Node.js website here. Here the full Node.js API is listed, anything you’re having trouble with should be documented here.

Utilities

There are a number of utilities that will help speed up your Node.js development.

  • npm, this is a package manager for Node.js, think of this as Gems or Nuget for Node.js;
  • node-express-boilerplate, this is a boilerplate project that installs most of the commonly used packages for you;
  • node-supervisor, this runs your application and checks for changes so you don't need to keep starting/stopping your application;
  • coffeescript is a way for you to write JavaScript without needing to worry about all the bad bits. It can be a bit tricky to get your head around at first, but it does help you to write clean and concise JavaScript;
  • request is a simple HTTP request library;
  • socket.io helps make realtime application easier by handling the transportation of data between the client and the server.

Frameworks

There are a growing number of frameworks for use in Node.js; below are the most popular.

Template Engines

There are a number of different template engines to help you produce the HTML and CSS of your applications.

  • jade this is probably the most popular templating engine and comes bundled with the express framework;
  • ejs;
  • mustache;
  • stylus is a cool way for you to create your CSS in a dry (don't repeat yourself) manner.

Data Access

There are a number of different ways to store and retrieve your data in Node.js; below are just a few of them.

  • node redis is a helper library to help you connect to redis;
  • mongoose is a MongoDB object modelling tool designed to work in an asynchronous environment;
  • express mongoose is a helper package for express and mongoose.

Client Side

Along with a number of great packages on the server side, there are also a number of packages that can be used on the client side; you don't even need to be using Node.js to take advantage of these.

Cool Stuff

Below are a number of packages I've found that I think are cool and worth showing off.

  • If you've not seen Cloud9 IDE then I seriously recommend you check it out and the great thing is that it is all open source! You can find all the projects they use at their GitHub page here;
  • One of the coolest projects Cloud9 IDE have is node-github this is a way to call the GibHub API via Node.js on the server;
  • anode, this is a number of projects that Microsoft have started that can help make your Node.js applications easier to write;
  • Browser Quest this is a massively multiplayer RPG created by Mozilla, a running example can be found here;
  • Node Foursquare, is a way for you to access the Foursquare API from the server.

Blogs and Learning

There are also a number of blogs and learning resources out there to help you get started with Node.js. These are just a few.

No comments:

Post a comment