2017-06-03 2 views
0

String型のいくつかのパラメータを1つの配列とともに自分のボディに送信する必要があります。 しかし、それは私にエラーメッセージがスローされます。私はこのオブジェクトへの内部の私の配列を渡すことができますどのようにリクエストのボディに配列またはネストされたオブジェクトを渡すnpm

var tokenList = JSON.parse(req.body.tokenList); 
    var mobParams = { 
     "tokens": tokenList, 
     "profile": "<myprofile>", 
     "notification": { 
      "title": req.body.title, 
      "message": req.body.text 
     } 
    }; 

    request({ 
     method: "POST", 
     url: 'https://api.ionic.io/push/notifications', 
     headers: { 
      "content-type": "application/json", 
      "authorization": "Bearer ********" 
     }, 

     body: (mobParams) 

    }, function(error, response, body){ 
     console.log('Ionic push error', error); 
     console.log('IOnic push res', response); 
     console.log('IOnic push body', body); 
     if(!error){ 
      return res.send({ 
       code: 1, 
       message: "success" 
      }); 
     }else{ 
      return res.send({ 
       code: 0, 
       message: error 
      }); 
     } 

最初の引数は文字列であるか、ここで

をバッファリングしなければなりませんが、私のコードですリクエストnpm?

また、この実装はフロントエンドでかなりうまく動作すると付け加えたいと思いますが、別のコードベースを使用して複数のFCMリクエスト、つまりループ内でリクエストする必要があります。だから私は、イオンのプッシュもFCMプッシュでもないが、私は以下のコードをしようとしていますFCMプッシュについて

を作品としてのソリューションを持って幸せになる:

let desktopParams = { 
             "notification": { 
              "title": 'Merchant Portal Notifications', 
              "body": req.body.text 
              // "click_action" : action 
             }, 
             "to": '/topics/' + topic 
            }; 
            request({ 
             method: "POST", 
             json: true, 
             url: 'https://fcm.googleapis.com/fcm/send', 
             headers: { 
              "content-type": "application/json", 
              "authorization": "key=****" 
             }, 
             body: desktopParams 
            }, function(error, response, body){ 
        console.log('error', error); 
        console.log('response', response); 
        console.log('body', body); 


             //return body; 
            }); 
+0

'ボディ試してみてください。JSON.stringify(mobParams)' – Ajay

+0

が試しを。呼び出しが解決されません。エラーはなく、コンソールには何も表示されません。 – kushalvm

+0

リクエストヘッダーの '' Content-Length ':JSON.stringify(mobParams).length'を追加してください – Ajay

答えて

0

あなたが参加する前に、あなたのtokenList & req.body.textを文字列化しようとすべきです文字列を持つことは、(人々がオブジェクトに関するより良いアイデアを持っていますように、それを記録し、結果を投稿しよう...):


var cho = [{name:'john',lname:'cena'},{name:'mary',lname:'jane'}]; 
var che = {list:[{name:'john',lname:'cena'},{name:'mary',lname:'jane'}],group:'people'} 


var mobParams = { 
     "tokens":JSON.parse(JSON.stringify(cho)), 
     "profile": "<myprofile>", 
     "notification": { 
      "title": "Some title", 
      "message":JSON.parse(JSON.stringify(che)) 
     } 
    }; 


console.log(JSON.stringify(mobParams));//----->{"tokens":[{"name":"john","lname":"cena"},{"name":"mary","lname":"jane"}],"profile":"<myprofile>","notification":{"title":"Some title","message":{"list":[{"name":"john","lname":"cena"},{"name":"mary","lname":"jane"}],"group":"people"}}} 

var arr = [{name:'john',lname:'cena'},{name:'mary',lname:'jane'}] 

var js = JSON.stringify(arr); 
var blabla = {'item':'something',js} 
console.log(blabla); //-----> Object {item: "something", js: "[{"name":"john","lname":"cena"},{"name":"mary","lname":"jane"}]"} 

var js = JSON.parse(JSON.stringify(arr)); 
var blabla = {'item':'something',js} 
console.log(blabla); //-----> Object {item: "something", js: Array(2)} 

var js = JSON.parse(arr); 
var blabla = {'item':'something',js} 
console.log(blabla); //-----> "SyntaxError: Unexpected identifier" 

関連する問題