2013-03-25 28 views
6

Próbowałem wielu przykładów dostępnych w sieci przy użyciu modułu węzłów wcf.js. Ale nie mógł uzyskać żadnego odpowiedniego wyniku. Używam poniższy linkJak korzystać z usługi mydła WCF w pliku node.js

https://webservice.kareo.com/services/soap/2.1/KareoServices.svc?wsdl

Każdy, kto może mi wyjaśnić za pomocą kodu będzie bardzo pomocna. Chcę wiedzieć, jak uzyskać dostęp do pliku wsdl w pliku node.js

Dzięki.

+0

możliwe duplikat [node.js: Jak spożywać SOAP usługi XML Web] (http://stackoverflow.com/questions/8655252/node-js-how-to-to-eatume-soap-xml-web-service) –

Odpowiedz

0

prawdopodobnie będziesz chciał skorzystać z jednego z:

Aslo, tam an existing question.

+0

U mogłem rzucić okiem na mój kod w tym linku http://stackoverflow.com/questions/15562943/wcf-web- service-in-node-js, ale powoduje błąd. Czy możesz mi pomóc w złym kodzie? – user87267867

0

myślę, że alternatywą byłoby:

  • użyć narzędzia takie jak SoapUI do rekordu wejściowego i wyjściowego xml wiadomości
  • użytku node request tworząc wiadomość xml wejście do wysyłania (POST) na żądanie usługa wWW (zauważ, że standardowe mechanizmy javascript templating takich jak ejs lub mustache mogłyby pomóc tutaj) i wreszcie
  • użycie parser XML deserializacji danych odpowiedzi do JavaScript obiektów

Tak, to podejście raczej brudne i niskiego poziomu, ale powinno działać bez problemów.

1

Nie masz tak wielu opcji.

prawdopodobnie będziesz chciał skorzystać z jednego z:

  • node-mydło
  • Bicze
  • soapjs

Próbowałem węzła mydła uzyskać INR kurs USD z następującego kodu .

app.get('/getcurr', function(req, res) { 
var soap = require('soap'); 
var args = {FromCurrency: 'USD', ToCurrency: 'INR'}; 
var url = "http://www.webservicex.net/CurrencyConvertor.asmx?WSDL"; 
soap.createClient(url, function(err, client) { 
    client.ConversionRate(args, function(err, result) { 
     console.log(result); 
    }); 
    }); 
}); 
1

Code Project dostał neat sample który wykorzystuje wcf.js dla których API WCF są niczym więc nie ma potrzeby uczenia się nowego paradygmatu.

0

Proszę spojrzeć na wcf.js

W skrócie można wykonać następujące kroki:

  1. npm zainstalować WCF.js

  2. Wpisz swój kod tak:

kod

var Proxy = require('wcf.js').Proxy; 
var BasicHttpBinding = require('wcf.js').BasicHttpBinding; 

var binding = new BasicHttpBinding(); 

//Ensure the proxy variable created below has a working wsdl link that actually loads wsdl  
var proxy = new Proxy(binding, "http://YourHost/YourService.svc?wsdl"); 

/*Ensure your message below looks like a valid working SOAP UI request*/ 
var message = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:sil='http://YourNamespace'>" + 
       "<soapenv:Header/>" + 
       "<soapenv:Body>" + 
       "<sil:YourMethod>" + 
       "<sil:YourParameter1>83015348-b9dc-41e5-afe2-85e19d3703f9</sil:YourParameter1>" + 
       "<sil:YourParameter2>IMUT</sil:YourParameter2>" + 
       "</sil:YourMethod>" + 
       "</soapenv:Body>" + 
       "</soapenv:Envelope>"; 
/*The message that you created above, ensure it works properly in SOAP UI rather copy a working request from SOAP UI*/ 

/*proxy.send's second argument is the soap action; you can find the soap action in your wsdl*/ 
proxy.send(message, "http://YourNamespace/IYourService/YourMethod", function (response, ctx) { 
    console.log(response); 
    /*Your response is in xml and which can either be used as it is of you can parse it to JSON etc.....*/ 
}); 
Powiązane problemy