2015-05-29 3 views
0

Я только начал использовать Node.js, и я пытаюсь использовать SOAP-сервис, используя расширение мыла узла. Я просто использую образец сервисного вызова прямо сейчас, но, похоже, не могу его запустить и запустить.вызов службы SOAP из Node.js

var soap = require('soap'); 
var fs = require('fs'); 

reqURL = fs.readFile('www.webservicex.net/stockquote.asmx?WSDL', 'UTF-8', function(err, data){ 
    if(err) console.log(err) 
     soap.createClient(data, function(err, client){ 
      client.StockQuote.StockQuoteSoap.GetQuote({symbol:'NKE'}, function(err, response){ 
       if(err) console.log(err); 
        console.log(response); 
      }); 
      console.log('Here is the SOAP sent to ' + data + client.lastrequest); 
     }); 
}); 

здесь ошибка я получаю:

{ [Error: ENOENT, open 'c:\dev\workspace\WebDevClass\node\www.webservicex.net\st 
ockquote.asmx?WSDL'] 
    errno: -4058, 
    code: 'ENOENT', 
    path: 'c:\\dev\\workspace\\WebDevClass\\node\\www.webservicex.net\\stockquote. 
asmx?WSDL' } 
fs.js:491 
    binding.open(pathModule._makeLong(path), 
     ^
TypeError: path must be a string 
    at TypeError (native) 
    at Object.fs.open (fs.js:491:11) 
    at Object.fs.readFile (fs.js:262:6) 
    at open_wsdl (c:\dev\workspace\WebDevClass\node\node_modules\soap\lib\wsdl.j 
s:1832:8) 
    at _requestWSDL (c:\dev\workspace\WebDevClass\node\node_modules\soap\lib\soa 
p.js:31:5) 
    at Object.createClient (c:\dev\workspace\WebDevClass\node\node_modules\soap\ 
lib\soap.js:48:3) 
    at c:\dev\workspace\WebDevClass\node\cliSoapTest.js:6:14 
    at fs.js:263:20 
    at FSReqWrap.oncomplete (fs.js:95:15) 
+0

Я не совсем понимаю, почему вы используете fs.readFile здесь ... разве вы не отправляете HTTP-запрос? Ошибка, которую вы получаете, просто говорит, что файл не существует. –

+0

Я получил это из примера блога, и я изменил имя файла. Я понимаю, что вы говорите, но я не уверен, как исправить это, чтобы включить HTTP-вызов вместо вызова файловой системы. –

ответ

-1

Попробуйте

var soap = require('soap'); 
var url = 'www.webservicex.net/stockquote.asmx?WSDL' 

reqURL = soap.createClient(url, function(err, client){ 
    client.StockQuote.StockQuoteSoap.GetQuote({symbol:'NKE'}, function(err, response){ 
      if(err) console.log(err); 
       console.log(response); 
     }); 
    }); 
}); 
2

Проверить это

var soap = require("soap"); 
var url = 'http://www.webservicex.net/stockquote.asmx?WSDL'; 

reqURL = soap.createClient(url, function(err, client){ 
    if(err) { 
     console.log(err); 
     return; 
    } 

    client.StockQuote.StockQuoteSoap.GetQuote({symbol:'NKE'}, function(err, response){ 
      if(err) { 
       console.log(err); 
       return; 
      } 

      console.log(response); 
    }); 
}); 
+2

* Почему ваше решение решает проблему? Объясните свой код (внутри вашего ответа), чтобы другие пользователи могли найти его полезным. –

+0

Я могу поддержать это, если вы добавите какое-то объяснение. – Manwal

Смежные вопросы