使用nodejs调用Web服务

iJa*_*ade 25 javascript http node.js

我对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);
  }
});
Run Code Online (Sandbox Code Playgroud)

任何有用的链接将非常感谢.

hex*_*ide 26

与该代码等效的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();
Run Code Online (Sandbox Code Playgroud)

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


Chr*_*res 14

目前最简单的方法是使用Request模块.请参阅该页面,了解有关如何执行所需操作的大量示例.

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