Node.js - 使用SOAP库的问题

时间:2011-08-12 10:19:34

标签: javascript node.js wsdl

我正在尝试使用此软件包:https://github.com/milewise/node-soap

然而,当我这样做时:

var soap = require('soap');
var url = 'http://example.com/wsdl?wsdl';
var args = {name: 'value'};
soap.createClient(url, function(err, client) {
    client.MyFunction(args, function(err, result) {
        console.log(result);
    });
});

它返回:“undefined”。

我的问题是我不明白什么时候说“args”。它与WDSL中的节点有关吗?

WSDL文件如下:

<xsd:element name="getAllMarkets">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="request" type="types:GetAllMarketsReq"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

请帮忙。感谢。

3 个答案:

答案 0 :(得分:3)

您正在记录result,这可能是未定义的,因为存在错误,这意味着您的回调函数的err参数已定义并且将为您提供信息。在这种情况下,因为看起来您正在调用MyFunction而不是getAllMarkets,您的错误可能会出现某种“未知方法”错误。做console.log(err, result);并查看打印出来的内容。

答案 1 :(得分:3)

而不是

var args = {name: 'value'};

试试这个

var args = {'tns:name': 'value'};

它为我工作。

答案 2 :(得分:0)

var args = { request: { name: 'value' } };