nodejs实现webservice的问题剖析
本篇文章给大家带来的内容是关于nodejs实现webservice的问题剖析,有必然的参照 价值,有需要的伴侣可以参照 一下,但愿对你有所帮忙。
库,工具
node-soap
soapui
创立
留意args里参数次序
const soap = require('soap'); let URL = "你的wsdl途径,可以是url或者当地文件"; // 留意参数次序!!!!!!!!! let args = { key1: val1, key2: val2 }; // promise创立 let client = await soap.createClientAsync(URL); // callback创立 soap.createClient(url, function(err, client) { client.MyFunction(args, function(err, result) { console.log(result); }); });
个人喜爱promise情势,之后调取其它函数都是可以两种方式实现的,若是异步情势,需要在你调取的函数名后增加 "Async"。
调取
参数数据只要一层没什么非凡,如:
args = { key1: val1, key2: val2 }
若是参数里又套了一层,node-soap是不会按照wsdl主动生成带有namespace prefix的数据,传到效劳器之后会解析xml失败。
如:
let val2: Array<dataType> = [ { key3: val3 } ]; let args = { key1: val1, key2: val2 }
这个时候就需要在传入数据时做些额外工作,修改为:
let val2: Array<dataType> = [ { key3: val3 } ]; let args = { key1: val1, key2: { dataType: val2 } }
上面这种dataType是生成xml时,其类型在xml中有声明;若是没有声明,就又是另一中写法,如:
// dataType或namespace prefix在生成xml未声明 let val2: Array<dataType> = [ { key3: val3 } ]; let args = { key1: val1, key2: val2 }
需改写为(此处用使用Array<string>是参照 soapui生成的namespace prefix,详细其它类型实现应当可通用);
let val2: Array<string> = [ val3, val4 ]; let args = { attributes: { 'xmlns:arr': 'http://schemas.microsoft.com/2003/10/Serialization/Arrays' }, key1: val1, key2: { "arr:string": val2 } }
https://stackoverflow.com/que...
20 小时前公布
nodejs实现webservice问题总结
node.js
javascript
16 次阅读 · 读完需要 6 分钟
1
库,工具
node-soap
soapui
创立
留意args里参数次序
const soap = require('soap'); let URL = "你的wsdl途径,可以是url或者当地文件"; // 留意参数次序!!!!!!!!! let args = { key1: val1, key2: val2 }; // promise创立 let client = await soap.createClientAsync(URL); // callback创立 soap.createClient(url, function(err, client) { client.MyFunction(args, function(err, result) { console.log(result); }); });
个人喜爱promise情势,之后调取其它函数都是可以两种方式实现的,若是异步情势,需要在你调取的函数名后增加 "Async"。
调取
参数数据只要一层没什么非凡,如:
args = { key1: val1, key2: val2 }
若是参数里又套了一层,node-soap是不会按照wsdl主动生成带有namespace prefix的数据,传到效劳器之后会解析xml失败。
如:
let val2: Array<dataType> = [ { key3: val3 } ]; let args = { key1: val1, key2: val2 }
这个时候就需要在传入数据时做些额外工作,修改为:
let val2: Array<dataType> = [ { key3: val3 } ]; let args = { key1: val1, key2: { dataType: val2 } }
上面这种dataType是生成xml时,其类型在xml中有声明;若是没有声明,就又是另一中写法,如:
// dataType或namespace prefix在生成xml未声明 let val2: Array<dataType> = [ { key3: val3 } ]; let args = { key1: val1, key2: val2 }
需改写为(此处用使用Array<string>是参照 soapui生成的namespace prefix,详细其它类型实现应当可通用);
let val2: Array<string> = [ val3, val4 ]; let args = { attributes: { 'xmlns:arr': 'http://schemas.microsoft.com/2003/10/Serialization/Arrays' }, key1: val1, key2: { "arr:string": val2 } }
https://stackoverflow.com/que...
你大概感乐趣的
评论
以上就是nodejs实现webservice的问题剖析的具体内容,更多请关注百分百源码网其它相关文章!