使用Node.js 创建WebService服务端
最近几天任务是用node.js去对接第三方的OA系统,对方OA系统属于太古老的代码了,还在使用WebService,用node.js调用WebService 很简单,用soap模块调用即可,网上已经有很多教程
但是当Node.js提供一个接口,供对方的webService调用,在网上找到对应教程。
- 难点:如何解析对方用soap调用该接口,获取参数,
- 方式1:可以自己实现xml的解析
- 方式2:调用soap模块
在实验多次之后终于解决该问题
npm install soap
- 阅读官方test代码。
server-test
// 服务端代码:
var soap = require('soap');
var fs = require('fs'),
http = require('http'),
lastReqAddress;
var test = {};
test.wsdl = fs.readFileSync('stockquote.wsdl', 'utf8');
test.server = null;
test.service = {
StockQuoteService: {
StockQuotePort: {
GetLastTradePrice: function(args, cb, soapHeader) {
if (soapHeader)
return { price: soapHeader.SomeToken };
if (args.tickerSymbol === 'trigger error') {
throw new Error('triggered server error');
} else if (args.tickerSymbol === 'Async') {
return cb({ price: 19.56 });
} else if (args.tickerSymbol === 'Promise Error') {
return new Promise((resolve, reject) => {
reject(new Error('triggered server error'));
});
} else if (args.tickerSymbol === 'Promise') {
return new Promise((resolve) => {
resolve({ price: 13.76 });
});
} else if (args.tickerSymbol === 'SOAP Fault v1.2') {
throw {
Fault: {
Code: {
Value: "soap:Sender",
Subc