2012-06-20 5 views
9

उदाहरण के लिए ग्राहक के पक्ष लगता है मैं एक JavaScript फ़ंक्शननोड.जेएस में मैं क्लाइंट साइड जावास्क्रिप्ट के साथ कैसे संवाद करूं?

function getLocation() { 
    var latitude = ...; 
    var longitude = ...; 
} 

निर्देशांक गूगल या इसी तरह के एक समारोह कॉल का उपयोग करके प्राप्त किए गए हैं की है। मैं इस जानकारी को अपने Node.js सर्वर पर कैसे प्रेषित कर सकता हूं?

+0

किसी प्रकार की टेम्पलेटिंग प्रणाली का उपयोग क्यों नहीं करें? यह आपके जीवन को आसान बना देगा – elclanrs

+3

@elclanrs संभावित रूप से टेम्पलेटिंग कैसे मदद करेगा? – Raynos

उत्तर

12

सबसे आसान तरीका? Express सेट करें और अपने क्लाइंट साइड कोड को अजाक्स के माध्यम से संवाद करें (उदाहरण के लिए, jQuery का उपयोग करके)।

(function() { 
    var app, express; 

    express = require("express"); 

    app = express.createServer(); 

    app.configure(function() { 
    app.use(express.bodyParser()); 
    return app.use(app.router); 
    }); 

    app.configure("development", function() { 
    return app.use(express.errorHandler({ 
     dumpExceptions: true, 
     showStack: true 
    })); 
    }); 

    app.post("/locations", function(request, response) { 
    var latitude, longitude; 
    latitude = request.body.latitude; 
    longitude = request.body.longitude; 
    return response.json({}, 200); 
    }); 

    app.listen(80); 

}).call(this); 

ग्राहक पक्ष पर, आप इसे इस तरह कह सकते हैं:

var latitude = 0 
    , longitude = 0; // Set from form 

$.post({ 
    url: "http://localhost/locations", 
    data: {latitude: latitude, longitude: longitude}, 
    success: function (data) { 
    console.log("Success"); 
    }, 
    dataType: "json" 
}); 

नोट इस कोड को बस एक उदाहरण है; आपको त्रुटि प्रबंधन, आदि

आशा है कि मदद करता है।

4

HTTP अनुरोध करके, जैसा कि आप किसी भी वेब सर्वर में किसी अन्य सर्वर साइड प्रोग्राम के साथ करेंगे।

आप XMLHttpRequest object के साथ ऐसा कर सकते हैं, या <form> उत्पन्न करके और फिर इसे सबमिट कर सकते हैं, या कई अन्य विधियों को प्रस्तुत कर सकते हैं।

+3

या एक वेबसाकेट खोलें। – Raynos

2

यदि आपको वास्तविक (सॉफ्ट) वास्तविक समय की क्षमताओं की आवश्यकता है, तो मैं Socket.io library का उपयोग करने की सलाह देता हूं। सॉकेट के साथ, नोड डेटा को आपके क्लाइंट साइड स्क्रिप्ट पर भी धक्का दे सकता है।

+0

इस – Raynos

+5

हाहा के लिए सबसे अधिक संभावना socket.io की आवश्यकता नहीं है, फिर आपने क्वांटिन के पोस्ट पर वेबसाकेट का उल्लेख क्यों किया? : डी। यह वही है जो socket.io प्रदान करता है लेकिन क्रॉस-ब्राउज़र समर्थन के साथ। –

1

मुझे लगता है कि NowJS आपके लिए एकदम सही फिट होगा। उदाहरण:

// On the Node.JS server 

var nowjs = require("now"); 
var everyone = nowjs.initialize(httpServer); 

everyone.now.getServerInfo = function(callback){ 
    db.doQuery(callback); 
} 

// In the browser 

<script> 

now.getServerInfo(function(data){ 
    // data contains the query results 
}); 

</script> 

आप सर्वर और दूसरी तरह के आसपास करने के लिए ग्राहक से, एक आम नाम स्थान (अर्थात now वस्तु) में चर और कार्यों डाल सकते हैं।

+0

nowjs एक जटिल समाधान है यदि उसे केवल – Raynos

+0

डेटा के कुछ छोटे टुकड़े प्राप्त करने की आवश्यकता है। लेकिन वह नहीं कहता कि उसे केवल डेटा के कुछ टुकड़े चाहिए; उन्होंने अभी एक उदाहरण दिया है –

+1

अभी, Nowjs.com सर्वर डाउन है और जिथब कोड 2 साल से अधिक पुराना है। साथ ही, 'npm इंस्टॉल अभी भी' करने में विफल रहा है, जिसे पाइथन को संकलित करने की आवश्यकता है। – shailenTJ

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