Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>With node.js you only need to <em>choose one framework</em>. For frameworks some popular ones are </p> <ul> <li><a href="https://github.com/senchalabs/connect" rel="nofollow">connect</a> A middleware component for managing HTTP requests</li> <li><a href="https://github.com/visionmedia/express" rel="nofollow">express</a> A view engine &amp; router build on connect.</li> <li><a href="https://github.com/socketstream/socketstream" rel="nofollow">SocketStream</a> A fast real-time web framework for Node.js</li> <li><a href="https://github.com/mauricemach/zappa" rel="nofollow">zappa</a> Not your mom's node framework</li> <li><a href="https://github.com/tuxychandru/grasshopper" rel="nofollow">grasshopper</a> a MVC framework</li> <li><a href="https://github.com/mde/geddy" rel="nofollow">geddy</a> a Web framework</li> <li><a href="https://github.com/DracoBlue/spludo" rel="nofollow">spludo</a> Another MVC framework</li> </ul> <p>I've only used <code>express</code> and I can vouch it is fantastic. It has a great community and fantastic support. It's also the only library I know that <em>just works</em> and that says a lot.</p> <p>Apart from that the node community uses optimized modules that solve one problem, when they need that problem solved. Frameworks should handle the minimal problems of handling HTTP request and <code>express</code> solves that.</p> <p>Below is an except from package.json file.</p> <pre><code>"dependencies": { // my framework, used to handle HTTP "express": "2.4.4", // a very specific validation module used for input validation "validator": "0.2.7", // dust a templating engine "dust": "0.3.0", // a uuid factory "node-uuid": "1.2.0", // a markdown parser "marked": "0.0.4", // a HTTP request library "request": "2.0.3", // a traits (OOP) library "traits": "0.4.0", // a file tree watcher "watch": "0.3.2", // a CSS abstraction "less": "1.1.4", // a flow control library "after": "0.1.0", // a utility to extend Buffer "buffertools": "1.0.3" }, "devDependencies": { // a unit testing library "vows-fluent": "0.1.0", // a unit testing utility "should": "0.2.1", // hot code reloading "nodemon": "0.5.3", // debugger "node-inspector": "0.1.9" } </code></pre> <p>As you can see, I use <em>one</em> framework and a whole range of hand chosen utility libraries that solve one task. For the other tasks I roll out my own (a few of the libraries listed above are my own). </p> <p>For example I used to recommend <code>backbone</code> as a solid MVC library but it just doesn't work with node. So I rolled out my own MVC abstraction. I also used to recommend <code>cradle</code> as a solid CouchDB abstraction but it leaked, so I stepped down and wrote my own database access code using <code>request</code> to talk to CouchDB.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload