Мог кто-то давать мне пример node.js приложения

Я пытаюсь понять различия между некоторыми более новыми платформами веб-программирования, которые теперь существуют, а именно, Node.js, направляющие и Sinatra.

Кто-то мог дать мне пример приложений, которые работали бы лучше всего над каждой из платформ?

То есть что является приложением, которое подошло бы лучше всего для Node.js в противоположность Rails или Sinatra и что является приложением, которое подходит лучше всего для направляющих в противоположность Node.js и Sinatra и т.д.....

7
задан meagar 12 June 2012 в 17:39
поделиться

1 ответ

Sinatra и Rails - это веб-фреймворки. Они предоставляют общие абстракции веб-разработки, такие как маршрутизация, шаблонизация, обслуживание файлов и т.д.

node.js сильно отличается. В своей основе node.js - это комбинация библиотек V8 и библиотек событий, а также стандартная библиотека, ориентированная на события. node.js лучше сравнивать с EventMachine для Ruby.

Например, вот основанный на событиях 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
}

А вот пример 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 вся стандартная библиотека построена на концепции событий, что означает, что она гораздо лучше подходит для решения любых задач, связанных с вводом-выводом. Хорошим примером может быть приложение для чата.

Sinatra и Rails - очень совершенные, стабильные и популярные веб-фреймворки. node.js имеет несколько веб-фреймворков, но ни один из них в настоящее время не дотягивает по качеству ни до одного из этих.

Из всех вариантов, если бы мне нужно было более стабильное веб-приложение, я бы выбрал Sinatra или Rails. Если бы мне нужно было что-то более масштабируемое и/или разнообразное, я бы выбрал node.js

.
10
ответ дан 7 December 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: