Nodejs - Frameworks

nodejs

Articles

http://webapplog.com/enterprise-node-js-frameworks-hapi-vs-kraken-vs-sails-js-vs-loopback/

http://nodeframework.com/
http://nodewebmodules.com/

expressjs (Sinatra-like)

geddyjs
compoundjs / RailwayJS

connect
meteor

Sinatra-like:
expressjs
flatiron (Flat-iron)
Hapi
mean
locomotives
total
koa

Rails-like:
compoundjs / RailwayJS
geddyjs
RhapsodyJS

The full-stack MVC frameworks are bundled with scaffolding, template engines, websocket and persistence libraries to allow you build real-time scalable web apps.

Full-stack:
socketstream
mojito
https://github.com/gnodi/danf

REST API frameworks:
https://github.com/keithnlarsen/restmvc.js
https://github.com/lucasfeliciano/restling

Other contenders:
towerjs
stapes
http://facet.github.io/
http://fortunejs.com
https://github.com/tshemsedinov/impress
grasshopper
https://github.com/DracoBlue/spludo
http://lsm.github.io/genji/
taco
http://opalang.org/
https://github.com/kriszyp/pintura

API:
http://actionherojs.com/
http://percolatorjs.com/

Other:
https://github.com/rendrjs/rendr
http://www.senchalabs.org/connect/
https://github.com/robtweed/ewdGateway2
https://github.com/mklabs/backnode
http://cylonjs.com/
http://icemobilelab.github.io/virgilio/

ORM:
http://sequelizejs.com/
http://www.camintejs.com/

Static site generator:
http://www.sitepoint.com/building-static-site-generator-grunt-plugin/
http://www.sitepoint.com/deploying-camel-js-blog-heroku
http://www.sitepoint.com/6-nodejs-static-site-generators/
https://github.com/caolan/petrify
http://docpad.org/
http://blacksmith.jit.su/
https://github.com/felixge/node-romulus
http://wintersmith.io/
https://github.com/jnordberg/wintersmith

https://github.com/rvagg/node-levelup

Problematic:

https://github.com/creationix/nvm
https://www.npmjs.org/doc/json.html
http://nodejs.org/api/modules.html

Features: (see http://vschart.com/compare/tower-js/vs/flatiron/vs/socketstream/vs/derbyjs)
Scaffolding
Fulltext search

https://github.com/joyent/node/wiki/modules#web-frameworks-micro - A monolithic list of frameworks and modules. A good place to scan for old libraries which may still exists.

They provide all realtime functionality, data persistence, and model-view bindings in your DOM. That plus a million other things like minification / concatenation of assets, user authentication, offline access, maintainenance of module version compatibilities, etc.

I'd use Angular if I wanted the client and server seperable so I could maintain an app on the Web + PhoneGap + App.js. Or if I wanted to use Backend as a Service (BaaS) such as Parse. But seriously, if you just want a real-time web app, use Derby or Meteor. You'll save yourself a ridiculous amount of time.

There is another middle-ware framework too which is JSGI. As JSGI and Connect seem not be too far from each other (And connect has developers of node.js and extJS behind them) i probably choose to go with Connect. So now i see that Express is based on connect. Why is express only good for small applications?

Express is built so that all your controllers and routes go in the same file, all mixed together :) Super convenient for small apps, but with larger ones that have many controllers and many functions in those controllers, that's a lot harder to do in an organized way in Express. You CAN, but Express just isn't built for that out of the box.

Hm yeah i hear different things on that. The folks over at the #node.js channel at irc.freenode.net seem to favourite express. They even said they think express might be better for big projects than geddy.

I also think geddy is not that active as express. and on express.com you can see some apps build on express wich aren't that small neither. I'm so freaking confused, man.

Interesting… I'd be really interested in seeing how large apps on Express are organized. Unless all of them just externalize the controllers right at the start, in which case that would make sense. Express is definitely the most popular framework for Node.js right now, though. It's crazy active and a whole lot of projects use it. The only thing it DOESN'T have is anything on the Model end, but that might actually be a good thing since it lets you choose from whatever database and caching libraries/services you want.

Pintura is an interesting beast. An interesting, fucking complicated beast. At first glance it looks like it's just meant to build a RESTful webservices API, but go deeper and it can be used to write a full-fledged webapp … but I'm not convinced it can be used to write a full-fledged webapp more quickly than if you wrote it from scratch. Lots of people rave about it, but I'm not sold yet.

For bots, the evented/non-blocking architecture of Node is perfect. You could write a pretty decent IRC server in Node as well. Everything you need is already built in.

What are the most popular frameworks?

  • Derby
  • Express
  • Geddy
  • Meteor
  • Nerve
  • many more…
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License