当然,您会告诉我SOAP已被弃用,而所有这些,我都被迫使用它。
现在,我尝试使用douche模块(https://github.com/marcgreenstock/douche),但是这样做时失败了(WSDL url很好,实际上我正在test/index.js
尝试提供的示例)
Client.wsdl.parse(function(wsdl) {
console.log(wsdl);
});
错误是:
/usr/local/lib/node_modules/douche/lib/douche/wsdl.js:74
attrs.forEach(function(url,index) {
^
TypeError: Object #<Object> has no method 'forEach'
at [object Object]._read_namespaces (/usr/local/lib/node_modules/douche/lib/douche/wsdl.js:74:9)
at /usr/local/lib/node_modules/douche/lib/douche/wsdl.js:20:10
at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/douche/lib/douche/wsdl.js:102:7)
at IncomingMessage.emit (events.js:81:20)
at HTTPParser.onMessageComplete (http.js:133:23)
at Socket.ondata (http.js:1226:22)
at Socket._onReadable (net.js:683:27)
at IOWatcher.onReadable [as callback] (net.js:177:10)
关于soap(https://github.com/milewise/node-soap)我什至无法用NPM安装它,但失败了:
> [email protected] install /home/warorface/node_modules/soap/node_modules/node-expat
> node-waf configure build
> [email protected] preinstall /home/warorface/node_modules/soap/node_modules/compress
> node-waf configure build
Checking for program g++ or c++ : /usr/bin/g++
Checking for program g++ or c++ : /usr/bin/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for node path : not found
Checking for node prefix : ok /usr/local
'configure' finished successfully (0.127s)
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Waf: Entering directory `/home/warorface/node_modules/soap/node_modules/node-expat/build'
Checking for g++ : ok
Checking for program gcc or cc : /usr/bin/gcc
[1/2] cxx: node-expat.cc -> build/default/node-expat_1.o
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
../node-expat.cc:6:19: fatal error: expat.h: No existe el fichero o el directorio
compilation terminated.
Waf: Leaving directory `/home/warorface/node_modules/soap/node_modules/node-expat/build'
Build failed: -> task failed (err #1):
{task: cxx node-expat.cc -> node-expat_1.o}
Checking for gcc : ok
Checking for node path : not found
Checking for node prefix : ok /usr/local
Checking for library z : npm ERR! error installing [email protected] Error: [email protected] install: `node-waf configure build`
npm ERR! error installing [email protected] `sh "-c" "node-waf configure build"` failed with 1
npm ERR! error installing [email protected] at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20)
npm ERR! error installing [email protected] at ChildProcess.emit (events.js:67:17)
npm ERR! error installing [email protected] at ChildProcess.onexit (child_process.js:192:12)
npm ERR! error installing [email protected] Error: [email protected] install: `node-waf configure build`
npm ERR! error installing [email protected] `sh "-c" "node-waf configure build"` failed with 1
npm ERR! error installing [email protected] at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20)
npm ERR! error installing [email protected] at ChildProcess.emit (events.js:67:17)
npm ERR! error installing [email protected] at ChildProcess.onexit (child_process.js:192:12)
npm ERR! [email protected] install: `node-waf configure build`
npm ERR! `sh "-c" "node-waf configure build"` failed with 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the node-expat package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-waf configure build
npm ERR! You can get their info via:
npm ERR! npm owner ls node-expat
npm ERR! There is likely additional logging output above.
npm ERR!
npm ERR! System Linux 2.6.38-8-generic-pae
npm ERR! command "node" "/usr/local/bin/npm" "install" "soap"
Traceback (most recent call last):
File "/usr/local/bin/node-waf", line 16, in <module>
Scripting.prepare(t, os.getcwd(), VERSION, wafdir)
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 145, in prepare
prepare_impl(t, cwd, ver, wafdir)
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 135, in prepare_impl
main()
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 188, in main
fun(ctx)
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 241, in configure
conf.sub_config([''])
File "/usr/local/bin/../lib/node/wafadmin/Configure.py", line 221, in sub_config
self.recurse(k, name='configure')
File "/usr/local/bin/../lib/node/wafadmin/Utils.py", line 634, in recurse
f(self)
File "/home/warorface/node_modules/soap/node_modules/compress/wscript", line 18, in configure
File "/usr/local/bin/../lib/node/wafadmin/Tools/config_c.py", line 444, in check
ret = self.run_c_code(*k, **kw)
File "/usr/local/bin/../lib/node/wafadmin/Tools/config_c.py", line 530, in run_c_code
bld.compile()
File "/usr/local/bin/../lib/node/wafadmin/Build.py", line 292, in compile
os.chdir(back)
OSError: [Errno 2] No such file or directory: '/home/warorface/node_modules/soap/node_modules/compress/build/.conf_check_0'
npm ERR! error installing [email protected] Error: [email protected] preinstall: `node-waf configure build`
npm ERR! error installing [email protected] `sh "-c" "node-waf configure build"` failed with 1
npm ERR! error installing [email protected] at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20)
npm ERR! error installing [email protected] at ChildProcess.emit (events.js:67:17)
npm ERR! error installing [email protected] at ChildProcess.onexit (child_process.js:192:12)
npm ERR!
最佳答案
修复了该问题,并在github上创建了marcgreenstock/douche存储库:
https://github.com/kr1sp1n/douche
安装我的自定义冲洗器:
就是这样!
关于Node.js中的SOAP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6406417/