我遇到了从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对象查看数据。
答案 0 :(得分:2)
您可以使用内置的util库的inspect方法来内省这些对象。
var util = require('util')
...
console.log(util.inspect(result))
你可以通过命令界面搞乱深度,颜色等。