It almost feels like traveling through time machine, too many things have changed over the past two years. Node was forked into io.js and ES6 has been out and getting traction. And there are new frameworks out each week. Frontend engineers must have been having a tough life to keep up, and tons of fun as well.
Here I just keep some book notes for my reading through the book "Node.js in Action". The book itself turned out to be a bit outdated, but many basics are still valid. There is also another more recent Manning book "Node.js in Practice".
Difference between exports and module.exports
exports is a reference to module.exports, so as long as you do not reassign it to something different, they are the same.
Module search sequence
search for node_modules recursively from current directory, if not found, then search for environment variable NODE_MODULE or NODE_PATH.
Module require search sequence
Search for index.js, then inside package.json to find the "main" definition.
Flow control libraries
unit test frameworks
should.js: assertion lib: https://github.com/tj/should.js/
functional test frameworks
Keep app running/restart
Node Web frameworks, so many of them
Hapi from walmartlabs: http://hapijs.com
A good intro about why Hapi was created: http://hueniverse.com/2012/12/20/hapi-a-prologue/
Kraken from paypal: http://krakenjs.com
Koa, next gen Node Web framework using ES6: http://koajs.com
Sailsjs, MVC pattern similar to RoR: http://sailsjs.org
Quite in depth comparison of Express, Koa and hapi: https://www.airpair.com/node.js/posts/nodejs-framework-comparison-express-koa-hapi
hapi vs Express: http://megagalactic.io/hapi-vs-express/
Express, hapi, Sails: http://blog.pluralsight.com/node-web-frameworks
Performance comparison of Express, hapi, and Restify: https://raygun.io/blog/2015/03/node-performance-hapi-express-js-restify/