How to send a POST request from node.js Express?

Could someone show me the simplest way to send a post request from node.js Express, including how to pass and retrieve some data? I am expecting something similar to cURL in PHP.

4

5 Answers

var request = require('request'); function updateClient(postData){ var clientServerOptions = { uri: ' body: JSON.stringify(postData), method: 'POST', headers: { 'Content-Type': 'application/json' } } request(clientServerOptions, function (error, response) { console.log(error,response.body); return; }); } 

For this to work, your server must be something like:

var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()) var port = 9000; app.post('/sample/put/data', function(req, res) { console.log('receiving data ...'); console.log('body is ',req.body); res.send(req.body); }); // start the server app.listen(port); console.log('Server started! At + port); 
1

As described here for a post request :

var http = require('http'); var options = { host: ' path: '/', port: '80', method: 'POST' }; callback = function(response) { var str = '' response.on('data', function (chunk) { str += chunk; }); response.on('end', function () { console.log(str); }); } var req = http.request(options, callback); //This is the data we are posting, it needs to be a string or a buffer req.write("data"); req.end(); 
2

you can try like this:

var request = require('request'); request.post({ headers: {'content-type' : 'application/json'} , url: <your URL>, body: <req_body in json> } , function(error, response, body){ console.log(body); }); 

I use superagent, which is simliar to jQuery.

Here is the docs

And the demo like:

var sa = require('superagent'); sa.post('url') .send({key: value}) .end(function(err, res) { //TODO }); 

in your server side the code looks like:

var request = require('request'); app.post('/add', function(req, res){ console.log(req.body); request.post( { url:' json: { unit_name:req.body.unit_name, unit_price:req.body.unit_price }, headers: { 'Content-Type': 'application/json' } }, function(error, response, body){ // console.log(error); // console.log(response); console.log(body); res.send(body); }); // res.send("body"); }); 

in receiving end server code looks like:

app.post('/add', function(req, res){ console.log('received request') console.log(req.body); let adunit = new AdUnit(req.body); adunit.save() .then(game => { res.status(200).json({'adUnit':'AdUnit is added successfully'}) }) .catch(err => { res.status(400).send('unable to save to database'); }) }); 

Schema is just two properties unit_name and unit_price.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like