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
归档时间: |
|
查看次数: |
6907 次 |
最近记录: |