Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calling a web service using nodejs

I'm quite new to Node.js. I was experimenting with how to call a service using NodeJS. Would be helpful if could point out the NodeJS equivalent of the code below:

$.ajax({   type: "POST",   url: "/WebServiceUtility.aspx/CustomOrderService",   data: "{'id': '2'}",   contentType: "application/json; charset=utf-8",   dataType: "json",   success: function (message) {     ShowPopup(message);   } }); 

Any helpful links would be most appreciated.

like image 863
iJade Avatar asked Oct 15 '13 23:10

iJade


People also ask

How do you call another service in Node js?

Would be helpful if could point out the NodeJS equivalent of the code below: $. ajax({ type: "POST", url: "/WebServiceUtility. aspx/CustomOrderService", data: "{'id': '2'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (message) { ShowPopup(message); } });

Can I run a website with Node js?

node. js is just a Javascript run-time environment. It doesn't start a web server by default. You can add code to start a web server.


2 Answers

The Node.js equivalent to that code can be using jQuery server-side, using other modules, or using the native HTTP/HTTPS modules. This is how a POST request is done:

var http = require('http'); var data = JSON.stringify({   'id': '2' });  var options = {   host: 'host.com',   port: '80',   path: '/WebServiceUtility.aspx/CustomOrderService',   method: 'POST',   headers: {     'Content-Type': 'application/json; charset=utf-8',     'Content-Length': data.length   } };  var req = http.request(options, function(res) {   var msg = '';    res.setEncoding('utf8');   res.on('data', function(chunk) {     msg += chunk;   });   res.on('end', function() {     console.log(JSON.parse(msg));   }); });  req.write(data); req.end(); 

This example creates the data payload, which is JSON. It then sets up the HTTP post options, such as host, port, path, headers, etc. The request itself is then set up, which we collect the response for parsing. Then we write the POST data to the request itself, and end the request.

like image 86
hexacyanide Avatar answered Sep 28 '22 05:09

hexacyanide


The easiest way at the moment is to use the Request module. See the page there for lots of examples showing how to do what you want.

If you want to use raw node.js, you'll need to use either http or https built-in modules, but you'll have to handle a lot of the encoding and streaming details yourself. Also, be sure to look specifically at the client parts of the documentation, not the server.

like image 40
Chris Tavares Avatar answered Sep 28 '22 05:09

Chris Tavares