2012-04-18 20 views
7

मैं नोड.जेएस पर एक नज़र डाल रहा हूं और एपीआई बनाने के लिए इसका उपयोग करने के बारे में सोच रहा हूं। मैं जो कह सकता हूं, से एक्सप्रेसजेएस वेब ढांचा होगा और यह वह नहीं है जिसे मैं हल करने की तलाश में हूं।एक नोड.जेएस वेब सेवा कैसा दिखता है?

तो वेब सेवा कैसा दिखता है? क्या यह बस एक सर्वर बना रहा है, मोंगो से बात कर रहा है और परिणाम लौटा रहा है? इसके अलावा, रूटिंग कैसा दिखता है? (मैं स्पष्ट रूप से मार्गों को 'डिजाइन' करना चाहता हूं)।

उत्तर

4

संबोधित करने के लिए एक्सप्रेस अपने वेब ढांचा होगा एक API रूट करने के लिए express-resource (Github) मिडलवेयर को देखने के लिए जा रहा द्वारा API तक पहुंच जाएगा। आप संसाधनों को परिभाषित करते हैं और यह आपके लिए बहुत कम बॉयलरप्लेट के साथ रीस्ट-स्टाइल रूटिंग को तार देगा।

app.resource('horses', require('./routes/horses'), { format: json }) 

को देखते हुए ऊपर, एक्सप्रेस-संसाधन कार्यों आपूर्ति, डिफ़ॉल्ट रूप से JSON लौटने के लिए सभी REST- शैली मार्गों ऊपर हुक होगा। routes/horses.js में, आप, कि संसाधन के लिए कार्रवाई निर्यात की तर्ज पर:

exports.index = function index (req, res) { 
    // GET http://yourdomain.com/horses 
    res.send(MyHorseModel.getAll()) 
} 

exports.show = function show (req, res) { 
    // GET http://yourdomain.com/horses/seabiscuit 
    res.send(MyHorseModel.get(req.params.horse)) 
} 

exports.create = function create (req, res) { 
    // PUT http://yourdomain.com/horses 
    if (app.user.canWrite) { 
    MyHorseModel.put(req.body, function (ok) { res.send(ok) }) 
    } 
} 

// ... etc 

आप अलग अलग प्रतिनिधित्व के साथ प्रतिक्रिया कर सकते हैं:

exports.show = { 
    json: function (req, res) { 
    // GET http://yourdomain/horses/seabiscuit.json 
    } 
, xml: function (req, res) { 
    // GET http://yourdomain/horses/seabiscuit.xml 
    } 
} 

Middlewares express-resource तरह नोड और एक्सप्रेस बहुत आसान के साथ जीवन बना सकते हैं, ले यह देखने के लिए कि क्या आपको वह चाहिए जो गिथब पर उदाहरणों के माध्यम से देखें।

1

नोड बहुत कम स्तर है। यह जावास्क्रिप्ट के कपड़ों में सी की तरह है। चूंकि यह सी के बराबर है, इसलिए बहुत अधिक है जो आप नोड के साथ कर सकते हैं। वेब सर्वर बनाना उनमें से एक है। आप सॉकेट, ब्लॉग, स्ट्रीमिंग आदि का उपयोग कर लाइव चैट सर्वर बना सकते हैं। संभावनाएं अनंत हैं। आप केवल अपनी कल्पना से ही सीमित हैं।

रूटिंग केवल एक कार्य है जहां आप कमांड लेते हैं (आमतौर पर यूआरएल या हेडर के माध्यम से) और पास किए गए आदेशों के आधार पर कार्य करते हैं।

लेकिन यहां तक ​​कि मैंने अभी तक नोड की सतह को स्कैटेड नहीं किया है। यह एपीआई बड़ा है और बड़ा हो रहा है। एक्सप्रेस या कनेक्ट जैसी कुछ मूल लाइब्रेरी का उपयोग करने की बेहतर कोशिश करें क्योंकि वे कोड से सर्वर बनाने की बुनियादी आवश्यकता को बहुत अधिक सारणी देते हैं।

2

यहां एक स्टब है जो पोस्टग्रेज़ डेटाबेस से घोड़ा नाम देखता है और परिणाम जेएसओएन के रूप में देता है। ग्राहकों का उपयोग होता है, इस तरह के रूप http://yourdomain.com/api/horse/seabiscuit

app.get('/api/horse/:name', function(req, res){ 

    pg.connect(conString, function(err, client) { 

     var horse = req.params.name; 
     var sql = "..."; 

     client.query(sql, function(err, result) { 
      if (err) { 
       ... 
      } 

      for (var i=0; i<result.rows.length; i++) { 
       // Customize data as needed 
      } 
      return res.send(JSON.stringify(result.rows)); 
     }); 
    }); 
}); 
संबंधित मुद्दे