Friday, May 25, 2012

How do I get started with Node.js


Are there any good resources to get started with Node.JS? Any good tutorials, blogs or books?



Of course, I have visited http://nodejs.org/ , but I didn't think the documentation they have is a good starting point.


Source: Tips4all

18 comments:

  1. Tutorials


    Node.js guide
    Node tuts


    Videos


    Introduction to Node.js with Ryan Dahl
    Node.js: Asynchronous Purity Leads to Faster Development
    Parallel Programming with Node.js
    Server-side JavaScript with Node, Connect & Express


    Books


    The Node Beginner Book
    Mastering Node.js
    Up and Running with Node.js
    Node.js in Action


    Blogs


    Ryan Dahl's Node blog
    How To Node
    DailyJS
    Nodejitsu blog


    Podcasts


    NodeUp


    JavaScript resources


    Crockford's videos (must see!)
    Essential JavaScript Design Patterns For Beginners
    JavaScript garden
    JavaScript Patterns book
    JavaScript: The Good Parts book


    Node Modules


    Wiki List on Github/Joyent/Node (start here last!)
    Search for registered node.js modules

    ReplyDelete
  2. First, learn the core concepts of Node.js:


    You'll want to understand the asynchronous coding style that Node encourages.
    Async != concurrent. Understand Node's event loop!
    Node uses CommonJS-style require() for code loading; it's probably a bit different from what you're used to.
    Familiarize yourself with Node's standard library.


    Then, you're going to want to see what the community has to offer:

    The gold standard for Node package management is NPM.


    It is a command line tool for managing your project's dependencies.
    Make sure you understand how Node and NPM interact with your project via the node_modules folder and package.json.
    NPM is also a registry of pretty much every Node package out there


    Finally, you're going to want to know what some of the more popular packages are for various tasks:

    Useful Tools for Every Project:


    Underscore contains just about every core utility method you want.
    CoffeeScript makes JavaScript considerably more bearable, while also keeping you out of trouble!

    Caveat: A large portion of the community frowns upon it. If you are writing a library, you should consider regular JavaScript, to benefit from wider collaboration.



    Unit Testing:


    Vows is a fantastic take on asynchronous testing, albeit somewhat stale.
    Expresso is a more traditional unit testing framework.
    node-unit is another relatively traditional unit testing framework.


    Web Frameworks:


    Express is by far the most popular framework.
    Tower is an abstraction of top of Express that aims to be a Rails clone.
    Geddy is another take on web frameworks.


    Web Framework Tools:


    Jade is the HAML/Slim of the Node world
    EJS is a more traditional templating language.
    Don't forget about Underscore's template method!


    Networking:


    Connect is the Rack or WSGI of the Node world.
    Request is a very popular HTTP request library.
    socket.io is handy for building WebSocket servers.


    Command Line Interaction:


    Optimist makes argument parsing a joy.
    Commander is another popular argument parser.
    Colors makes your CLI output pretty.

    ReplyDelete
  3. Use the source, Luke.

    No but seriously I found that building Node from source, running the tests, and looking at the benchmarks did get me on the right track. From there, the .js files in the lib directory are a good place to look, especially the file http.js.

    Update: I wrote this answer over a year ago, and since that time there has explosion in the number of great resources available for people learning node. Though I still believe diving into the source is worthwhile, I think that there are now better ways to get started. I would suggest some of the books on node that are starting to come out.

    ReplyDelete
  4. Howtonode is a good site to follow. Also, since node.js no longer supports promises as of 1.3 release, Do is also worth watching

    ReplyDelete
  5. You can also take a look at http://nodecasts.org

    ReplyDelete
  6. JsApp.US is a hosting platform for node.js applications. It may be useful to get started.

    ReplyDelete
  7. The videos from the Node.js Camp put on in Dec of 2010 are pretty helpful in getting started.

    http://camp.nodejs.org/videos/

    If you are just starting out you are going to want to understand some of the 'Why' behind Node.

    A few of the topics


    Intro from Ryan Dahl (Creator)
    NPM - Node Package Manager
    Socket.io
    An example game covered from both the client and server perspective
    Redis
    CouchDB
    Initial Deployments


    If you are absolutely brand new to Node.js I would recommend Ryan's Google Tech Talk first, which covers a lot of the theory behind Node. Learning 'Why' to Node can help really help you as you learn 'How' to Node.

    ReplyDelete
  8. There is a really good video introduction on the YDN with the creator:
    http://www.yuiblog.com/blog/2010/05/20/video-dahl/

    ReplyDelete
  9. There is a new site called "The Node Beginner Book". It's a great tutorial for beginners. Check it out: http://nodebeginner.org/

    ReplyDelete
  10. Wrote a blog to help my friends get started with nodejs.

    http://neeraj.name/2010/03/25/getting-started-with-nodejs-in-steps.html

    ReplyDelete
  11. This tutorial from howtonode.org on writing a blog using node.js is what got me started. As node.js is changing so rapidly half (that, or there abouts) of the code samples are out of date. Having to hack around between this and the docs to bring it up to date gave me a basic working knowledge fairly quickly.

    http://howtonode.org/express-mongodb

    ReplyDelete
  12. You can use VJET JavaScript IDE for Eclipse and import the project NodeJSTL. This will provide a type library which will make code proposals work while learning and exploring all the apis available. Here are some screenshots available here - https://www.ebayopensource.org/index.php/VJET/NodeJS

    You can get the Node JS Type library as a zip archive. Go to VJET page, Downloads, Then NodeJS type library.

    Create a new VJET project and add a project dependency on NodeJSTL imported project. https://www.ebayopensource.org/docs/VJET/importing-vjet-javascript-type-libraries.html

    This has been very helpful to me since VJET provides code assist for require and maps the core types automatically.

    ReplyDelete
  13. Heroku is a good hosting platform for NodeJS. Heroku exp support. It's experimental for now but do take a look at it. Write a slick app and deploy on it and play for sometime. This will allow you to learn the inside of configuring NodeJS as well. Node Knockout torunament website NodeKnockout is hosted on github which is in NodeJS. Hope this helps.

    ReplyDelete
  14. There are 3 resources for learning nodejs(for full understanding how to create application just read sources in github(check it modules page):

    https://github.com/joyent/node/wiki/modules
    http://tjholowaychuk.com/
    http://devthought.com/

    my own website(but it haven't complete yet): http://github.com/oivoodoo/home

    ReplyDelete
  15. Recent article on smashing magazine provide us with tons of resources and tutorials on node.js

    http://coding.smashingmagazine.com/2011/09/16/useful-node-js-tools-tutorials-and-resources/

    ReplyDelete
  16. I spent some time learning Node recently and used many of the resources in this thread.

    It's hard to know what to read and in what order, so I put together a beginner's tutorial that takes a stab at organizing things a bit.

    ReplyDelete
  17. A small plug

    Check out http://www.nodeblogs.com you can find the code at github under.
    Personally I would recommend messing around with express and also check out the github node wiki that contains lots of links to tutorials and modules.

    http://wiki.github.com/ry/node/

    ReplyDelete
  18. Nevir's answer is pretty awesome.

    I'm going to throw my own resource in the hat: my Wilcox Development Solution's Node.js whitepaper. Essentially I created it because, while Node.js's module page is a great resource, it's also super long and you don't really know which module is the best.

    I also wrote the whitepaper while looking at a potential large project in node.js. My background (and focus for the whitepaper) was "large" projects (10-15 and on up manyears) so I have a different focus than some node.js people.

    ReplyDelete