- “Evented I/O for V8 Javascript” – http://nodejs.org
- Application engine for “scalable network applications”
- Really freaking fast:
- One process, zero* threads
- (Almost) no blocking
- High concurrency with low overhead
- No thread swapping or context switching
- Applications must be designed from the ground up to not block on I/O, CPU-intensive work, etc.
- A full-stack web framework (a la Ruby on Rails)
- But! you can get there:
- ExpressJS: (http://expressjs.com/ ) (Web framework with MongoDB support built in - similar to Sinatra)
- http://github.com/senchalabs/connect (Rack-like middleware for Node and Express)
- haml.js: http://github.com/visionmedia/haml.js (Pure js implementation of HAML)
- Great at sending large static files concurrently. (use nginx.)
- Buffer implementation in recent versions improves this dramatically: http://nodejs.org/jsconf2010.pdf
- Completely non-blocking.
- CPU-intensive stuff will still block you (do it in a worker process).
- Some system calls (executed in a thread pool)
- Great together! Both:
- speak Javascript
- understand JSON documents
- are freaking fast.
- So, what should you build?
- You can build: Standard n-tier web applications
- Great way to learn mongoDB and Node
- Go build a blog engine! (Everyone does.)
- Lots of libraries to help you get started: ExpressJS, Connect, etc.
- You should build:
- Applications requiring high throughput and concurrency
- Applications with real-time needs
- Applications with long-polling connections
- Real-time multiuser chat
- Web or log analytics (e.g. Hummingbird)
如果你觉得很完美那继续阅读:http://www.slideshare.net/ggoodale/getting-started-with-mongodb-and-nodejs