azrm
azrm

Reputation: 199

Post request to external api

after a post request from an ajax call in angularjs, i want to send the request params from angularjs to an external api. I get all params i want. But I don't know, how i can make a new post request to the api, inside my nodejs url. I need this step to nodejs.

This is my Code

router.post({
      url: '/user/:id/sw'
    }, (req, res, next) => {


      var userId = req.pramas.id;
      var firstName = req.pramas.firstName;
      var lastName = req.pramas.lastName;




      var data = 'test';

      res.send(200, data);
    });

I found some solutions like this on: (just example code)

  request({
    uri: 'http://www.giantbomb.com/api/search',
    qs: {
      api_key: '123456',
      query: 'World of Warcraft: Legion'
    },
    function(error, response, body) {
      if (!error && response.statusCode === 200) {
        console.log(body);
        res.json(body);
      } else {
        res.json(error);
      }
    }
  });

but this doesn't work. How I can make a new Post Request with the req.params to an external api? Also i need a Response from the api..

Thanks for help and Ideas :)

Upvotes: 0

Views: 4165

Answers (3)

manoj patel
manoj patel

Reputation: 1240

var request = require("request");

exports.checkstatus = async (req, res) => { //this is function line you can remove it

try {
 var options = { 
    method: 'POST',
    url: 'https://mydoamin/api/order/status',
    headers: 
    { 
        signature: '3WHwQeBHlzOZiEpK4yN8CD',
        'Content-Type': 'application/json' 
    },
    body: 
    { 
        NAME: 'Vedant',
        ORDERID: 'ORDER_ID1596134490073',
     
    },
    json: true 
};

request(options, function (error, response, body) {
if (error) throw new Error(error);

    console.log(body); //get your response here
});

} catch (error) {
    return fail(res, error.message);
}

};

Upvotes: 0

Vipin PS
Vipin PS

Reputation: 432

Try this,

const request = require('request-promise')
const options = {
  method: 'POST',
  uri: 'http://localhost.com/test-url',
  body: {
    foo: 'bar'
  },
  json: true 
    // JSON stringifies the body automatically
};
​
request(options)
  .then(function (response) {
    // Handle the response
  })
  .catch(function (err) {
    // Deal with the error
  })

Upvotes: 1

Rahul Sharma
Rahul Sharma

Reputation: 10071

Its req.params not req.pramas

Try this

var request = require('request');
router.post({
    url: '/user/:userId/shopware'
}, (req, res, next) => {
    var params = req.params;
    request.get({
        uri: 'http://www.giantbomb.com/api/search',
        qs: params // Send data which is require
    }, function (error, response, body) {
        console.log(body);
    });
});

Upvotes: 2

Related Questions