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

The*_*hop 7 ruby-on-rails sinatra node.js

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

有人能给我一个最适合每个框架的应用程序示例吗?

也就是说,什么是一个应用程序,这将是最适合的Node.js,而不是导轨或西纳特拉,什么是一个应用程序,它是最适合的Rails,而不是Node.js和受西纳特拉等.....

Bri*_*nna 10

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

node.js非常不同.在它的核心,node.js是V8和事件库的组合,以及面向事件的标准库.与EventMachine for Ruby相比,node.js更好.

例如,这是一个基于事件的HTTP服务器,使用EventMachine:

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
}
Run Code Online (Sandbox Code Playgroud)

这是一个node.js示例:

var http = require('http');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello world');
}).listen(8000);
Run Code Online (Sandbox Code Playgroud)

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

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

Sinatra和Rails都是非常精致,稳定和流行的Web框架.node.js有一些Web框架,但目前其中任何一个都没有.

在选择中,如果我需要一个更稳定的Web应用程序,我会选择Sinatra或Rails.如果我需要更高度可扩展性和/或多样性的东西,我会选择node.js