के साथ पोल रीस्ट सेवा मैं एक ऐसी सेवा पर काम कर रहा हूं जो फोरस्क्वेयर को हर मिनट या तो कुछ चेक-इन के लिए मतदान करेगी और परिणाम को नोएसQL डेटाबेस में सहेजें/अपडेट करें। SetInterval के साथ http.request को लपेटने के लिए सबसे अच्छा तरीका है और फिर डेटा इवेंट उत्सर्जक का उपयोग करके खंडित प्रतिक्रिया को जोड़ना है? मैं जेएसओएन को पार्स करने के लिए एंड एमिटर का उपयोग करने की योजना बना रहा हूं और अनुरोध पूरा होने पर नोएसक्यूएल डीबी में धक्का देता हूं। विचार?नोड.जेएस
नोड.जेएस
उत्तर
वहाँ बेहतर तरीके हो सकते हैं, लेकिन मैं सिर्फ घटना emitters का उपयोग कर के रूप में निम्नानुसार बाकी प्रतिक्रिया पर कार्रवाई करने के समाप्त हो गया:
var fourSquareGet = {
host: 'api.foursquare.com',
port: 443,
path: '/v2/venues/search?ll=33.88,-119.19&query=burger*',
method: 'GET'
};
setInterval(function() {
var reqGet = https.request(fourSquareGet, function (res) {
var content;
res.on('data', function (chunk) {
content += chunk;
});
res.on('end', function() {
// remove 'undefined that appears before JSON for some reason
content = JSON.parse(content.substring(9, content.length));
db.checkins.save(content.response.venues, function (err, saved) {
if (err || !saved) throw err;
});
console.info("\nSaved from Foursquare\n");
});
});
reqGet.end();
reqGet.on('error', function (e) {
console.error(e);
});
}, 25000);
हालांकि, मुझे यकीन है कि मैं क्यों था पार्स आउट "अनिर्धारित" से नहीं कर रहा हूँ JSON मुझे चौकोर से प्राप्त हुआ।
जब मैं इसी तरह की समस्या में भाग रहा था, तो मैंने एक समान तकनीक निभाई और यह अच्छी तरह से काम किया। Here's where I got the idea from। उम्मीद है कि यह थोड़ा सा मदद करेगा।
Thx ... मुझे लगता है कि मैं एक ही लेख को देखा लेकिन यह थोड़ा पुराने लग रहा था। – occasl
मैं @occasl द्वारा जवाब ठीक करने के बाद, और स्पष्टता के लिए अद्यतन:
var https = require('https');
setInterval(function() {
var rest_options = {
host: 'api.example.com',
port: 443,
path: '/endpoint',
method: 'GET'
};
var request = https.request(rest_options, function(response) {
var content = "";
// Handle data chunks
response.on('data', function(chunk) {
content += chunk;
});
// Once we're done streaming the response, parse it as json.
response.on('end', function() {
var data = JSON.parse(content);
//TODO: Do something with `data`.
});
});
// Report errors
request.on('error', function(error) {
console.log("Error while calling endpoint.", error);
});
request.end();
}, 5000);
भविष्य के लिए, बस मेरा जवाब संपादित करें और मैं आपके परिवर्तनों को कोई समस्या नहीं स्वीकार करूंगा। – occasl
- 1. नोड.जेएस
- 2. नोड.जेएस
- 3. नोड.जेएस
- 4. नोड.जेएस
- 5. नोड.जेएस
- 6. नोड.जेएस
- 7. नोड.जेएस
- 8. नोड.जेएस:
- 9. नोड.जेएस
- 10. नोड.जेएस सिद्धांत - नोड.जेएस, एक्सप्रेस.जेएस, पासपोर्ट.जेएस
- 11. नोड.जेएस: कॉफीस्क्रिप्ट
- 12. नोड.जेएस/एक्सप्रेस
- 13. एक्सप्रेस नोड.जेएस
- 14. प्रेस्क्रिप्टिव नोड.जेएस
- 15. नोड.जेएस स्थिर?
- 16. नोड.जेएस/एक्सप्रेस
- 17. नोड.जेएस - बफर
- 18. नोड.जेएस विकास?
- 19. एस्टेरिक्स्क + नोड.जेएस + ब्राउज़र स्ट्रीमिंग
- 20. नोड.जेएस: कितने रेडिस ग्राहक?
- 21. टीसीपी और नोड.जेएस
- 22. नोड.जेएस एक्सप्रेस बनाम फ्लैटिरॉन
- 23. नोड.जेएस और म्यूटेक्स
- 24. नोड.जेएस और एसीएल
- 25. परीक्षण मोंगोस नोड.जेएस ऐप
- 26. नोड.जेएस, एक्सप्रेस, i18n
- 27. नोड.जेएस: पोर्ट 80
- 28. नोड.जेएस और कॉच डीबी
- 29. नोड.जेएस: खंडित स्थानांतरण एन्कोडिंग
- 30. जैस्मीन और नोड.जेएस
आपको 'अपरिभाषित' का विश्लेषण करने का कारण यह है कि आपने कभी भी 'सामग्री' शुरू नहीं की है। यदि, "var सामग्री;" के बजाय आपके पास "var content = '' है;" आपको कुछ भी पट्टी करने की जरूरत नहीं है। (जब आप एक स्ट्रिंग 'foo' को 'अपरिभाषित' में जोड़ते हैं, तो यह आपको "undefinedfoo" स्ट्रिंग देता है।) –
इसे जोड़ने के लिए धन्यवाद। मैं एक ही काम कर रहा हूं लेकिन मुझे लगता है कि मैंने इसे कभी अपडेट नहीं किया है। संपादित करने के लिए स्वतंत्र महसूस करें मेरा जवाब – occasl