私はノードをWebページに接続し、その結果を同じプログラムに返そうとしていました。ここで私が持っているコードです:http.requestノードのJavaScriptで使用するvarを返す
var http = require('http'),
sys = require('sys'),
fs = require('fs');
var options = {
host: 'myurl.com',
port: 80,
path: '/path/to/file',
method: 'POST'
};
var myglobal = "the test";
var req = http.request(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
myglobal = chunk;
console.log("myglobal = " + myglobal);
});
});
// write data to request body
req.write('data\n');
req.write('data\n');
req.end();
console.log("outside of http request: myglobal = " + myglobal);
今私は起こるしたいプログラムの終了時にウェブページ「myurl.com」の出力の内容を持っている「myglobal」のためです。しかし、これは起こりませんし、 "チャンク"からコンテンツをプログラム内の別の変数に取得する方法を見つけることができません。内容が "req"変数か "res"変数のいずれかにあると思ったが、varsをダンプして出力を見つけることができなかった。最後に、 "myglobal"はまだ "テスト"と言っています。http.requestコード内の "myglobal"は "チャンク"の出力を持っています。それが何であるかを知りたいだけなので、私はここで行方不明になっています。ありがとう。
ダリル
はい、http.request領域内の「ここで作業しています」領域から印刷すると機能します。私が持っている問題は、私はソケットを介してページの出力を送信したいと思うし、ソケットがhttp.requestエリアの内側から正しく動作するようには見えません。私のソケット接続は最後のhttp.request括弧の外側でうまく動作します。なぜなら、そこの外側のPOST出力にアクセスしたいのです。私がこれを明確にしていないなら、私はより良い説明を挙げることができます。ありがとう。 – Darryl