2010-06-04 15 views
7

मैं कुछ नए वेब प्रोग्रामिंग ढांचे के बीच अंतर को समझने की कोशिश कर रहा हूं जो अब मौजूद है, अर्थात् नोड.जेएस, रेल और सिनात्रा।क्या कोई मुझे node.js एप्लिकेशन का उदाहरण दे सकता है

क्या कोई मुझे उन अनुप्रयोगों का एक उदाहरण दे सकता है जो प्रत्येक ढांचे पर सबसे अच्छा काम करेंगे?

यह कहना है कि, एक आवेदन क्या है जो रेल या सिनात्रा के विपरीत नोड.जेएस के लिए सबसे उपयुक्त होगा और नोड.जेएस और सिनात्रा इत्यादि के विपरीत रेल के लिए सबसे उपयुक्त कौन सा एप्लीकेशन है। ...

उत्तर

10

सिनात्रा और रेल दोनों वेब ढांचे हैं। वे सामान्य वेब विकास abstractions प्रदान करते हैं, जैसे रूटिंग, टेम्पलेटिंग, फ़ाइल सेवारत, आदि

node.js बहुत अलग है। इसके मूल पर, node.js एक घटना-उन्मुख मानक लाइब्रेरी के साथ V8 और ईवेंट लाइब्रेरी का संयोजन है। रुडी के लिए EventMachine की तुलना में 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 
} 

और यहाँ एक 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 का पूरा standard library built around the concept of events है जिसका अर्थ यह है कि यह I/O बाध्य किसी भी समस्या के लिए बेहतर है। एक अच्छा उदाहरण chat application होगा।

सिनात्रा और रेल दोनों बहुत परिष्कृत, स्थिर और लोकप्रिय वेब ढांचे हैं। node.js में कुछ वेब ढांचे हैं लेकिन उनमें से कोई भी इस समय के किसी भी गुणवत्ता की गुणवत्ता पर नहीं है।

विकल्पों में से, यदि मुझे अधिक स्थिर वेब एप्लिकेशन की आवश्यकता है, तो मैं सिनात्रा या रेल के लिए जाऊंगा। अगर मुझे कुछ अधिक स्केलेबल और/या विविधता की आवश्यकता है, तो मैं node.js

के लिए जाना चाहूंगा
संबंधित मुद्दे

 संबंधित मुद्दे