节点SOAP请求成功但无法公开对象

时间:2016-01-06 17:19:48

标签: node.js web-services soap

我遇到了从Node.js SOAP module公开SOAP结果的问题。

以下代码成功进行了经过身份验证的请求。

var soap = require('soap');
var url = 'http://example.com/soap.php?wsdl';
var args = {SecurityToken: '123abc456def789'};

soap.createClient(url, function(err, client) {
  client.GetAllMarketAreas(args, function(err, result){
    console.log(result);
  });
});

但是console.log返回以下内容:

{ GetAllMarketAreasResult: { ROOT: { METHODINFO: [Object], DATA: [Object] } } }

我假设数据正在被发回,我只是无法通过console.log中的引用来查看它。这听起来是否正确?如果是这样,我将如何通过Node解析公开日期?

如果通过SoupUI完成,SOAP响应如下所示:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.eventinventory.com/webservices/">
   <SOAP-ENV:Body>
  <ns1:GetAllMarketAreasResponse>
     <ns1:GetAllMarketAreasResult>
        <ROOT>
           <METHODINFO>
              <channelName>Basic View</channelName>
              <methodName>GetAllMarketAreas</methodName>
              <parameters>SecurityToken=123abc456def789</parameters>
              <processTime type="milliseconds">20.8221</processTime>
           </METHODINFO>
           <DATA xmlns:sql="urn:schemas-microsoft-com:xml-sql">
              <row ID="0" Name="International/Unknown"/>
              <row ID="1" Name="Calgary, AB"/>
              <row ID="4" Name="Abilene, TX"/>
              <row ID="6" Name="Aguadilla, PR"/>
              <row ID="7" Name="Boston, MA"/>
              ...

所以我的最终目标是通过Node JS中的JSON对象查看数据。

1 个答案:

答案 0 :(得分:2)

您可以使用内置的util库的inspect方法来内省这些对象。

var util = require('util')

...

console.log(util.inspect(result))

你可以通过命令界面搞乱深度,颜色等。