node.js - Passing json data using angular services -


i have been trying post data node api using angular2 services via json request .however node api receiving undefined value when pass parameters thorough angular2 services . below here angular service code

 enrolldegree(name,depart,enrollnumber,cgpa,university,token){  let peer = '["localhost:10151","localhost:10351"]';  let fcn = 'initdegree';      let argument = '["'+name+'","'+depart+'","'+enrollnumber+'","'+cgpa+'","'+university+']';  let headers = new headers({'cache-control':'no-cache', 'content-type': 'application/json', 'authorization':'bearer '+token});  let options = new requestoptions({ headers: headers });  let body1 = new urlsearchparams();  body1.set('peers','["localhost:10151","localhost:10351"]');  body1.set('fcn',fcn);  body1.set('args',argument);  let body = json.stringify(body1);  console.log('server logs',body);  return this.http.post('http://localhost:4000/channels/mychannel/chaincodes/mycc', body, options ) .map((res: response) => res.json()) .catch((error:any) => observable.throw(error.json().error || 'server error shit bang in')); } 

here node api code

  app.post('/channels/:channelname/chaincodes/:chaincodename', function(req, res) { logger.debug('==================== invoke on chaincode =================='); var peers = req.body.peers; var chaincodename = req.params.chaincodename; var channelname = req.params.channelname; var fcn = req.body.fcn; var args = req.body.args; logger.debug('channelname  : ' + channelname); logger.debug('chaincodename : ' + chaincodename); logger.debug('fcn  : ' + fcn); logger.debug('args  : ' + args); if (!peers || peers.length == 0) {     res.json(geterrormessage('\'peers\''));     return; } if (!chaincodename) {     res.json(geterrormessage('\'chaincodename\''));     return; } if (!channelname) {     res.json(geterrormessage('\'channelname\''));     return; } if (!fcn) {     res.json(geterrormessage('\'fcn\''));     return; } if (!args) {     res.json(geterrormessage('\'args\''));     return; }  invoke.invokechaincode(peers, channelname, chaincodename, fcn, args, req.username, req.orgname) .then(function(message) {     res.send(message); });  }); 

when try post data using curl query , works fine me . curl query use in making post request

curl -s -x post \   http://localhost:4000/channels/mychannel/chaincodes/mycc \   -h "authorization: bearer $org1_token" \   -h "content-type: application/json" \   -d '{     "peers": ["localhost:7051", "localhost:8051"],     "fcn":"initdegree",     "args":["khurrum","software","ned11831314","3.5","ned"] }' 

what doing wrong in angular2 services?

in angular service code, instead of creating request body urlsearchparams instance, try this:

let body1 = {  peers: ["localhost:10151","localhost:10351"],  fcn: fcn,  args: argument } let body = json.stringify(body1); 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -