有人可以给我一个node.js应用程序的例子

我试图理解现在存在的一些较新的Web编程框架(即Node.js,Rails和Sinatra)之间的差异。

有人能给我一个在每个框架上最好的应用程序的例子吗?

也就是说,什么是最适合Node.js的应用程序,而不是Rails或Sinatra,什么是最适合Rails的应用程序,而不是Node.js和Sinatra等。

Sinatra和Rails都是Web框架。 他们提供常见的Web开发抽象,如路由,模板,文件服务等。

node.js是非常不同的。 在核心上,node.js是V8和事件库的结合,还有一个面向事件的标准库。 与Ruby的EventMachine相比,node.js更好。

例如,以下是使用EventMachine的基于事件的HTTP服务器:

require 'eventmachine' require 'evma_httpserver' class MyHttpServer < EM::Connection include EM::HttpServer def post_init super no_environment_strings end def process_http_request response = EM::DelegatedHttpResponse.new(self) response.status = 200 response.content_type 'text/plain' response.content = 'Hello world' response.send_response end end EM.run{ EM.start_server '0.0.0.0', 8080, MyHttpServer } 

这里是一个node.js的例子:

 var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello world'); }).listen(8000); 

这种方法的好处是服务器不会阻塞每个请求(它们可以并行处理)!

node.js的整个标准库都是围绕事件的概念构build的 ,这意味着它更适合任何受I / O限制的问题。 一个很好的例子是一个聊天应用程序 。

Sinatra和Rails都是非常精致,稳定和stream行的Web框架。 node.js有一些网页框架,但是目前还没有一个框架的质量。

除了select,如果我需要一个更稳定的Web应用程序,我会selectSinatra或Rails。 如果我需要更高扩展性和/或多样性的东西,我会去node.js