2016-02-10 8 views
5

मुझे एक समस्या है जहां जब मैं दो ऑब्जेक्ट प्रकार को दूरस्थ विधि तर्क के रूप में पास करता हूं, तो पहला तर्क दूसरे तर्क द्वारा अधिलेखित हो जाता है। नीचे कोड और परिणाम है। मैं दूसरे तर्क के बारे में पहले तर्क को ओवरराइट नहीं करने के बारे में कैसे जा सकता हूं?लूपबैक: रिमोट विधि में एकाधिक ऑब्जेक्ट प्रकारों को पास करना

module.exports = (Model) => { 
    Model.calculate = (primary, secondary) => { 

    console.log(JSON.stringify(primary, null, 2)); 
    console.log(JSON.stringify(secondary, null, 2)); 

    return new Promise((resolve, reject) => { 
     resolve({ Model: calculator.calculate() }); 
    }); 
    }; 

    Model.remoteMethod('calculate', { 
    accepts: [ 
     { arg: 'primary', type: 'object', http: { source: 'body' } }, 
     { arg: 'secondary', type: 'object', http: { source: 'body' } } 
    ], 
    returns: {arg: 'Result', type: 'string'} 
    }); 
}; 

जब मैं प्राथमिक तर्क { "नाम": "टॉम" } में गुजरती हैं और माध्यमिक तर्क { "नाम:" जो " } JSON प्रवेश करने प्राथमिक और माध्यमिक वस्तुओं सांत्वना के बाद मैं परिणाम प्राप्त

primary 
{ 
    "name": "Joe" <--- WHY?! 
} 

secondary 
{ 
    "name: "Joe" 
} 

आप देखें टॉम जो करने के लिए ओवरराइट किया गया सकते हैं

उत्तर

8

बदलें:।।

Model.remoteMethod('calculate', { 
    accepts: [ 
     { arg: 'primary', type: 'object', http: { source: 'body' } }, 
     { arg: 'secondary', type: 'object', http: { source: 'body' } } 
    ], 
    returns: {arg: 'Result', type: 'string'} 
    }); 

रहे हैं:

Model.remoteMethod('calculate', { 
    accepts: [ 
     { arg: 'primary', type: 'object' }, 
     { arg: 'secondary', type: 'object' } 
    ], 
    returns: {arg: 'Result', type: 'string'} 
    }); 

http: { source: 'body' } वस्तु मूल्य के रूप में एचटीएमएल के पूरे शरीर में भेजता है, ताकि आप उस में भेज रहे हैं, दो बार - एक फार्म क्षेत्र की तरह कहा जाता name क्या किया जा रहा है है यह लग रहा है उठाया गया, लेकिन अगर यह मामला नहीं है तो अधिक कोड प्रदान करें।

More info on optional HTTP mapping of input arguments here. लेकिन ध्यान दें करने के लिए मुख्य बात यह है कि वैकल्पिक :-)

+0

धन्यवाद है! इसने काम कर दिया! :) – emarel

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