nodejs实现webservice的问题分析

本篇文章给大家带来的内容是关于nodejs实现webservice的问题分析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

库,工具

node-soap
soapui

创建

注意args里参数顺序

  1. 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”。

调用

参数数据只有一层没什么特殊,如:

  1. args = { key1: val1, key2: val2}

登录后复制登录后复制

若是参数里又套了一层,node-soap是不会根据wsdl自动生成带有namespace prefix的数据,传到服务器之后会解析xml失败。

如:

  1. let val2: Array = [ { key3: val3 } ];let args = { key1: val1, key2: val2}

登录后复制登录后复制

这个时候就需要在传入数据时做些额外工作,修改为:

  1. let val2: Array = [ { key3: val3 } ];let args = { key1: val1, key2: { dataType: val2 }}

登录后复制登录后复制

上面这种dataType是生成xml时,其类型在xml中有声明;若是没有声明,就又是另一中写法,如:

  1. // dataType或namespace prefix在生成xml未声明let val2: Array = [ { key3: val3 } ];let args = { key1: val1, key2: val2}

登录后复制登录后复制

需改写为(此处用使用Array是参考soapui生成的namespace prefix,具体其它类型实现应该可通用);

  1. let val2: Array = [ 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里参数顺序

  1. 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”。

调用

参数数据只有一层没什么特殊,如:

  1. args = { key1: val1, key2: val2}

登录后复制登录后复制

若是参数里又套了一层,node-soap是不会根据wsdl自动生成带有namespace prefix的数据,传到服务器之后会解析xml失败。

如:

  1. let val2: Array = [ { key3: val3 } ];let args = { key1: val1, key2: val2}

登录后复制登录后复制

这个时候就需要在传入数据时做些额外工作,修改为:

  1. let val2: Array = [ { key3: val3 } ];let args = { key1: val1, key2: { dataType: val2 }}

登录后复制登录后复制

上面这种dataType是生成xml时,其类型在xml中有声明;若是没有声明,就又是另一中写法,如:

  1. // dataType或namespace prefix在生成xml未声明let val2: Array = [ { key3: val3 } ];let args = { key1: val1, key2: val2}

登录后复制登录后复制

需改写为(此处用使用Array是参考soapui生成的namespace prefix,具体其它类型实现应该可通用);

  1. let val2: Array = [ 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的问题分析

举报

你可能感兴趣的

评论                                                    

默认排序                        时间排序

载入中…

显示更多评论

nodejs实现webservice的问题分析

以上就是nodejs实现webservice的问题分析的详细内容,更多请关注【创想鸟】其它相关文章!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

点点赞赏,手留余香

给TA打赏
共0人
还没有人赞赏,快来当第一个赞赏的人吧!
    编程技术

    react路由的简单用法(代码示例)

    2025-3-8 0:49:06

    编程技术

    JavaScript中作用域链与执行环境的介绍(图文)

    2025-3-8 0:49:15

    0 条回复 A文章作者 M管理员
    欢迎您,新朋友,感谢参与互动!
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    私信列表
    搜索