Node-Soapライブラリを使用して、node.js サーバーから外部 Web サービスを呼び出しています。コードは以下のとおりです。
var http = require("http");
var soap = require("soap");
var url = 'http://www.w3schools.com/webservices/tempconvert.asmx?wsdl';
var args = {Celsius: '40'};
http.createServer(function(request,response) {
response.writeHead(200,{"Content-Type":"text/html"});
response.write("<h1>Hello, Web!</h1>");
soap.createClient(url, function(err, client) {
client.CelsiusToFahrenheit(args, function(err, result) {
console.log(result); //This works
response.write(result); //This doesn't print
});
});
response.end();
}).listen(8888);
Web サービスを正常に呼び出すことができ、応答を得ることができます。問題は、result
console.log() を使用して出力すると、次のように出力されることです。
{ CelsiusToFahrenheitResult: '104' }
しかし、response.write 経由で送信すると、出力を取得できず、空の値が返されます。与えresult.toString()
てみJSON.stringify(result)
ましたが、まだ空白になっています。
手伝ってくれませんか?console.log を使用してデータを出力できるのに、response.write を使用できないのはなぜですか?