使用nodejs调用Web服务

时间:2013-10-15 23:22:30

标签: javascript node.js http

我对Node.js很新。我正在尝试如何使用NodeJS调用服务。如果可以指出以下代码的NodeJS等价物将会有所帮助:

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

非常感谢任何有用的链接。

3 个答案:

答案 0 :(得分:25)

与该代码等效的Node.js可以使用jQuery服务器端,使用其他模块,或使用本机HTTP / HTTPS模块。这就是POST请求的完成方式:

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();

此示例创建数据有效内容,即JSON。然后它设置HTTP post选项,例如主机,端口,路径,标题等。然后设置请求本身,我们收集解析响应。然后我们将POST数据写入请求本身,并结束请求。

答案 1 :(得分:14)

目前最简单的方法是使用Request module。请参阅那里的页面,了解大量示例,了解如何做您想做的事。

如果你想使用原始node.js,你需要使用httphttps内置模块,但你必须处理大量的编码和流媒体详述自己。此外,请务必专门查看文档的客户端部分,而不是服务器。

答案 2 :(得分:0)

//--------- Tracking request service                  
factory.trackRequest = function (payload) {
    return $http({
        method: 'POST',
        **url: 'https://uat-userauthentication.bdt.kpit.com/'+ 
 'employee/trackRequestStatus'**,
        data: payload
    });
 };

 return factory;

我通过UI路由以角度调用节点js服务,并且我在控制器中使用了trackRequest函数。