मेरे पास सर्वर/statusboard.js में निम्न कोड है;सर्वर पर संग्रह.इन्सर्ट को कॉल करते समय उल्का कोड हमेशा फाइबर के भीतर चलाना चाहिए "
var require = __meteor_bootstrap__.require,
request = require("request")
function getServices(services) {
services = [];
request('http://some-server/vshell/index.php?type=services&mode=json', function (error, response, body) {
var resJSON = JSON.parse(body);
_.each(resJSON, function(data) {
var host = data["host_name"];
var service = data["service_description"];
var hardState = data["last_hard_state"];
var currState = data["current_state"];
services+={host: host, service: service, hardState: hardState, currState: currState};
Services.insert({host: host, service: service, hardState: hardState, currState: currState});
});
});
}
Meteor.startup(function() {
var services = [];
getServices(services);
console.log(services);
});
असल में, यह JSON फ़ीड से कुछ डेटा खींच रहा है और उसे संग्रह में धक्का देने की कोशिश कर रहा है।
जब मैं उल्का शुरू करता हूं तो मुझे निम्नलिखित अपवाद मिलता है;
app/packages/livedata/livedata_server.js:781
throw exception;
^
Error: Meteor code must always run within a Fiber
at [object Object].withValue (app/packages/meteor/dynamics_nodejs.js:22:15)
at [object Object].apply (app/packages/livedata/livedata_server.js:767:45)
at [object Object].insert (app/packages/mongo-livedata/collection.js:199:21)
at app/server/statusboard.js:15:16
at Array.forEach (native)
at Function.<anonymous> (app/packages/underscore/underscore.js:76:11)
at Request._callback (app/server/statusboard.js:9:7)
at Request.callback (/usr/local/meteor/lib/node_modules/request/main.js:108:22)
at Request.<anonymous> (/usr/local/meteor/lib/node_modules/request/main.js:468:18)
at Request.emit (events.js:67:17)
Exited with code: 1
मुझे यह भी सुनिश्चित नहीं है कि त्रुटि का क्या अर्थ है। क्या किसी के पास कोई विचार है, या एक अलग दृष्टिकोण का सुझाव दे सकता है?
मैं यह स्पष्ट है कि "सेवाएं" दोनों ग्राहक के लिए एक अलग फ़ाइल में कहीं परिभाषित किया गया है (सामान्य बनाना चाहिए और सर्वर)। –
यह लाइन समस्या है: 'सेवाएं।सम्मिलित करें ({होस्ट: होस्ट, सेवा: सेवा, हार्डस्टेट: हार्डस्टेट, currState: currState}); ' मुझे लगता है क्योंकि यह कॉलबैक में है, इस समय आपके लिए परीक्षण करने का कोई तरीका नहीं है। – jonathanKingston
उल्का में अब एक HTTP अनुरोध लाइब्रेरी शामिल है जो आपके मामले को बहुत आसान बनाता है: http://docs.meteor.com/#meteor_http – debergalis