SOAP在Node.js中

当然,你会告诉我,SOAP是不推荐使用的,所有的,我都被迫使用它。

现在,我已经尝试使用冲洗模块( https://github.com/marcgreenstock/douche ),但是当我这样做时(WSDLurl没问题,实际上我正在尝试在test/index.js处提供的示例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) 

关于so​​ap( https://github.com/milewise/node-soap )我甚至不能用NPM安装它,它会失败:

 > node-expat@1.3.2 install /home/warorface/node_modules/soap/node_modules/node-expat > node-waf configure build > compress@0.1.9 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 node-expat@1.3.2 Error: node-expat@1.3.2 install: `node-waf configure build` npm ERR! error installing node-expat@1.3.2 `sh "-c" "node-waf configure build"` failed with 1 npm ERR! error installing node-expat@1.3.2 at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20) npm ERR! error installing node-expat@1.3.2 at ChildProcess.emit (events.js:67:17) npm ERR! error installing node-expat@1.3.2 at ChildProcess.onexit (child_process.js:192:12) npm ERR! error installing soap@0.0.1 Error: node-expat@1.3.2 install: `node-waf configure build` npm ERR! error installing soap@0.0.1 `sh "-c" "node-waf configure build"` failed with 1 npm ERR! error installing soap@0.0.1 at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20) npm ERR! error installing soap@0.0.1 at ChildProcess.emit (events.js:67:17) npm ERR! error installing soap@0.0.1 at ChildProcess.onexit (child_process.js:192:12) npm ERR! node-expat@1.3.2 install: `node-waf configure build` npm ERR! `sh "-c" "node-waf configure build"` failed with 1 npm ERR! npm ERR! Failed at the node-expat@1.3.2 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 compress@0.1.9 Error: compress@0.1.9 preinstall: `node-waf configure build` npm ERR! error installing compress@0.1.9 `sh "-c" "node-waf configure build"` failed with 1 npm ERR! error installing compress@0.1.9 at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20) npm ERR! error installing compress@0.1.9 at ChildProcess.emit (events.js:67:17) npm ERR! error installing compress@0.1.9 at ChildProcess.onexit (child_process.js:192:12) npm ERR! 

修正了这个问题,并在github上分配了marcgreenstock / douche存储库:

https://github.com/kr1sp1n/douche

安装我自定义的冲洗:

  1. git clone git@github.com:kr1sp1n / douche.git
  2. CD冲洗
  3. npm链接
  4. cd / path / to / your / project
  5. npm卸载douche
  6. npm链接冲洗

而已!