Is there a client side framework built specifically to work with Node.js development practices?

I would like to know if there is a client-side framework which was built with Node practices in mind? Do I even "need" to use such a framework?

I'm not trying to induce a flame war between the users of the different frameworks, I would just like to know if using one of these frameworks with Node.js has an advantage over the others or if I should just evaluate the differences between them without keeping Node in mind at all.

I am just getting started with Node.js development. Previously, I have been developing in Rails and I read a decent amount of articles about the different client-side JavaScript "MVC" frameworks out there. At the moment, the ones I think are worthy of attention are Backbone.js, Ember.js, Knockout.js and Angular.js (in this particular order).

I've read things like Backbone.js was written with Rails developers in mind, or at least with Rails as a framework in mind.

Without keeping Node in mind I think I'd prefer Ember + Handlebars for templating or Backbone + underscore for templating. On the server side I plan to use Express with MongoDB, and I saw somewhere that many Node users use Jade for templating, which also confuses me.

Thanks in advance for any help.

Express is agnostic regarding your client-side framework. It does a very good job of handling all of the common templating languages. So there isn't any node.js specific reason why you should pick a specific framework over the others from the list you provided.

Indeed, one of the big advantages that node has as a platform is that since it's running javascript, you can actually use the code from any client-side framework on your server, say for example if you wanted to pre-render sections of the page before sending it to the client, or share model schemas between the server side and client side of your backbone app.

To answer your supplementary question regarding the popularity of jade you should probably investigate the relationship between Express and Jade. Whilst express does a very good job of supporting all the major templating languages; Jade was written deliberately to work well with express They're also written by the same author. It's also the only HAML like templating language that's really used by the node audience. Since it has very different semantics to the other popular templating languages, it has a lot of popularity amongst those people who like that specific set of semantics.

It is hard to recommend a framework without knowing more about your javascript skills and what sort of projects you are looking to work on. I would say that time invested in learning any of the frameworks your mentioned would be well spent.

Here are some good resources:

Open source applications using backbone & ember. Large scale, professional grade apps.

  • discourse Community discussion portal built with a restful rails backend and an ember front end.
  • document cloud Rails backend with backbone front end.

If you decide to use backbone consider it using Marionette that is a library on top of backbone. Backbone is a perfect fit for a restul application, but if you are building a client side application you should think what is best for you client side application.

Please take a look at this set of examples it will help you to size the diferences between each js MVC frameowrk out there. http://todomvc.com/