ドキュメントに従って基本的な Node.js http サーバーをセットアップしました。Javascript (AJAX) と通信できる非常に単純な Web サービスを作成しようとしています。これを Arduino に接続します。これはテスト ピースです。別の道をたどるかもしれませんが、これは楽しいことが証明されています。とにかく、ここにサーバー側のJavaScriptがあります:
var http = require('http');
var _return = 'Bing Bong';
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'application/jsonp'});
//do stuff
res.end('_return(\'Hello :-)\' + _return)');
}).listen(process.env.VMC_APP_PORT || 1337, null);
そして、これはクライアント側です:
function experimentFive(node) {
console.log('X5 Func started');
console.log('Calling Node.js service');
var nodeURL = node;
$.ajax({
url: nodeURL,
dataType: "jsonp",
jsonpCallback: "_return",
cache: false,
timeout: 50000,
success: function(data) {
console.log('Data is: ' + data);
$("#nodeString").text(" ");
$("#nodeString").append(data);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log('error : ' + textStatus + " " + errorThrown);
}
});
}
experimentFive('http://fingerpuk.eu01.aws.af.cm/');
これは機能します。データは返されますが、期待どおりではありません。私ができるようにしたいのは、データサーバー側を変更して、それを受け取ることです。res.end プラスの文字列を取得します。
function () {
responseContainer = arguments;
}
変数のデータの代わりに。そのデータをどのように取り戻そうとしても、未定義またはこの応答のいずれかです。
調査によると、コールバックが発生する前に変数にデータセットが設定されていないため、空になっていると思います。しかし、初期値を設定すると、データはまだ定義されていません。
ここで非常に単純なものが欠けていますか?C# に戻した方がいいのでしょうか?
乾杯。