EasySoap
easysoap is a WSDL SoapClient for Node.js.
Support
How to get ?
install with npm
npm i easysoap
Usage
get a soapclient instance
const EasySoap = require('easysoap');
const soapClient = EasySoap(params, opts);
params createParams, soapOptions
response instance of easysoap
possible parameter data
createParams
{
    host               : 'www.example.com',
    path               : '/soap/path',
    wsdl               : '/wsdl/path',
    headers            : Array or Object,
    rejectUnauthorized : true/false
}
soapOptions
{
    secure : true/false //is https or http
}
the following methods available after creating an soapclient instance with easysoap
call
params callParams
response callResponseObject
getRequestXml
params callParams
response xml (string)
callParams
{
    method    : "sampleMethodName",
    attributes: Object of custom tag attributes for given params,
    params	: Object/Array of params
}
getXmlDataAsJson
params xml (string)
response xmldata as json
getAllFunctions
response Function Names (array)
getMethodParamsByName
params methodName (string)
response methodParams (object)
Examples
(() => {
    'use strict';
    const EasySoap = require('easysoap');
    // define soap params
    const params = {
	   host: 'www.sample.com',
	   path: '/path/soap/',
	   wsdl: '/path/wsdl/',
	   // set soap headers (optional)
	   headers: [{
	       'name'      : 'item_name',
            'value'    : 'item_value',
            'namespace': 'item_namespace'
       }]
    }
    /*
     * create the client
     */
    var soapClient = EasySoap(params);
/*
 * get all available functions
 */
soapClient.getAllFunctions()
   .then((functionArray) => { console.log(functionArray); })
   .catch((err) => { throw new Error(err); });
/*
 * get the method params by given methodName
 */
soapClient.getMethodParamsByName('methodName')
   .then((methodParams) => {
      console.log(methodParams.request);
      console.log(methodParams.response);
    })
    .catch((err) => { throw new Error(err); });
/*
 * call soap method
 */
soapClient.call({
   method    : 'methodName',
   attributes: {
      xmlns: 'http://www.sample.com'
   },
   params: {
      testParam: 1,
      testParam: [2, 3],
      testParam: {
         '_value'     : 4,
         '_attributes': {
             'xmlns1': 'http://www.sample.com/other'
         }
      }
   }
})
.then((callResponse) => {
    console.log(callResponse.data);	// response data as json
    console.log(callResponse.body);	// response body
    console.log(callResponse.header);  //response header
})
.catch((err) => { throw new Error(err); });