2016-02-10 7 views
5

リモートメソッドの引数として2つのオブジェクト型を渡すと、最初の引数が2番目の引数で上書きされるという問題があります。以下はコードと結果です。 2番目の引数が1番目の引数を上書きしないようにするにはどうすればよいですか?ループバック:リモートメソッドで複数のオブジェクト型を渡す

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'} 
    }); 
}; 

Iプライマリ引数 { "名前": "トム" }渡し: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' }は、オブジェクトの値として、HTMLの全身に送る - nameと呼ばれるフォームフィールドがされているものであるように見えますこれが当てはまらない場合は、より多くのコードを提供します。注意すべき

More info on optional HTTP mapping of input arguments here.しかし、主なものは、それが

+0

おかげオプション:-)であるということです!出来た! :) – emarel

関連する問題