2012-10-30 8 views
5

में सहेजने से पहले ऑब्जेक्ट सर्वर-साइड को कैसे बदलें, संग्रह के अद्यतन होने के बाद मैं कुछ सम्मिलित विवरण चलाने की कोशिश कर रहा हूं। उदाहरण के लिए, यदि कोई उपयोगकर्ता अपने उपयोगकर्ता दस्तावेज़ में एक एम्बेडेड दस्तावेज़ स्थान जोड़ता है, तो मैं उस एम्बेडेड दस्तावेज़ को एक अलग स्थान संग्रह में भी डालना चाहता हूं। सर्वर सर्वर पर ऐसा करने का कोई तरीका है ताकि ऑपरेशन चलाने की गारंटी हो?मेटीर

+0

में एक परियोजना के मुझे पता है कि तुम दोनों अद्यतन और सम्मिलित करने के लिए एक विधि सर्वर साइड कॉल कर सकते हैं, लेकिन यह है कि से निकालने विलंबता मुआवजे की नकारात्मक परिणाम होता है मैं क्या समझता हूँ – HGandhi

उत्तर

-1

क्या आप एक क्लाइंट-साइड विधि ठूंठ को लागू करने से विलंबता मुआवजा रख सकते एक विधि में यह करने के लिए की आवश्यकता होगी ..:

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

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

मेरी उल्का ठूंठ उदाहरण यहाँ देखें: https://stackoverflow.com/a/13145432/1029644

+0

क्या आपके पास कहा गया है कि स्टब्स को कैसे कार्यान्वित किया जाए? मैं StackOverflow पर कुछ उदाहरण देख रहा हूं जैसे कि [यह एक] (http://stackoverflow.com/questions/12231712/when-to-use-meteor-methods-and-utilizing-stubs) लेकिन मैं अभी भी थोड़ा उलझन में हूँ इसे कैसे कार्यान्वित किया जाए। – HGandhi

3

आप कुछ कोड मैंने लिखा (https://gist.github.com/matb33/5258260) का उपयोग करने को तैयार हैं, तो आप ऐसा तरह में हुक कर सकते हैं:

संपादित करें: कोड अब हिस्सा है https://github.com/matb33/meteor-collection-hooks

var test = new Meteor.Collection("test"); 

if (Meteor.isServer) { 
    test.before("insert", function (userId, doc) { 
     doc.created = doc.created || Date.now(); 
    }); 

    test.before("update", function (userId, selector, modifier, options) { 
     if (!modifier.$set) modifier.$set = {}; 
     modifier.$set.modified = Date.now(); 
    }); 

    test.after("update", function (userId, selector, modifier, options, previous) { 
     doSomething(); 
    }); 
} 
संबंधित मुद्दे