我刚刚开始学习带有Node.Out的soap客户端的可用软件包,我决定使用easy-soap npm package here来在Nodejs中进行soap调用。
首次尝试以错误结束。我在这做错了什么? 如何从这里开始。有人能说清楚这个吗?
(function() {
"use strict";
var easysoap = require('easysoap');
// ##define soap params
var params = {
host : '190.100.00.00',
path : '/webservices/angular2/',
wsdl : '/webservices/angular2/php-server.wsdl',
// set soap headers (optional)
headers: [{
'name' : 'item_name',
'value' : 'item_value',
'namespace': 'item_namespace'
}]
}
// ##create the client
var soapClient = easysoap.createClient(params);
// ##get all available functions
soapClient.getAllFunctions()
.then((functionArray) => { console.log(functionArray); })
.catch((err) => { console.error(err); });
}
**ERROR:**
TypeError: Cannot read property 'indexOf' of undefined
at doGetRequest.then (/home/user/test/node_modules/wsdlrdr/src/index.js:326:41)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
答案 0 :(得分:1)
而不是.catch((err) => { throw new Error(err); });
,
执行.catch(err => console.error(err); )
,它可以检查堆栈跟踪并查看错误来自哪一行。
如果是图书馆问题,请在Recognize the characters of license plate上提交新问题。
另请删除Typescript标签。
答案 1 :(得分:0)
在可用的软件包中,最好使用strong-soap here并且不再有任何错误。
"use strict";
var soap = require('strong-soap').soap;
var url = 'http://192.100.00.000/webservices/angular2/php-server.wsdl';
var requestArgs = {
symbol: 'IBM'
};
var options = {};
soap.createClient(url, options, function(err, client) {
var method = client['check_username'];
method(requestArgs, function(err, result, envelope, soapHeader) {
console.log('Response Envelope: \n' + envelope);
console.log('Result: \n' + JSON.stringify(result));
});
})