Javascript 如何从NodeJS中的回调函数中获取数据?
我在从http获取数据时遇到问题。节点js的请求我在控制台中获取了数据,但当我试图从函数中获取数据时,它没有进入变量。这是我尝试发送请求时的代码,即端口转发。我在x回调函数中得到响应,但未找到数据,因此任何知道的人请告诉我Javascript 如何从NodeJS中的回调函数中获取数据?,javascript,node.js,Javascript,Node.js,我在从http获取数据时遇到问题。节点js的请求我在控制台中获取了数据,但当我试图从函数中获取数据时,它没有进入变量。这是我尝试发送请求时的代码,即端口转发。我在x回调函数中得到响应,但未找到数据,因此任何知道的人请告诉我 var fs = require('fs'); var http = require('http'); var url = require('url') , httpProxy = require('http-proxy'); var express = require("e
var fs = require('fs');
var http = require('http');
var url = require('url') ,
httpProxy = require('http-proxy');
var express = require("express");
//
// Create your proxy server
//
httpProxy.createServer(9000, 'localhost').listen(8000);
//
// Create your target server
//
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
//res.write('request successfully proxied!' + '\n' + JSON.stringify(req.headers, true, 2));
var queryObject = url.parse(req.url,true).query;
res.writeHead(200);
if(queryObject['id']!==undefined){
console.log(queryObject);
//alert(queryObject['id']);
if(queryObject['id'].match('100'))
{
res.write(queryObject['id']+" forwarding to another port 8000");
//sending request
var options = {
host: '192.168.10.33',
port: 8080,
path: '/demo.js?id='+queryObject['id'],
method: 'GET',
headers: {
accept: 'text/plain'
}
};
console.log("Start conecting ...");
var x = http.request(options,function(res2){
console.log("Connected.");
res2.on('data',function(data){
//*********
//Here is the problem occur this data i m cloud not able to print
//********
console.log("data-> "+data);
});
});
x.end("\n ok");
//end
}
else
{
res.write("listening on current port");
}
}
res.end("\n end of page ");//'\n\nFeel free to add query parameters to the end of the url');
//res.end();
}).listen(9000);
我相信响应数据是分块的,所以您需要继续加载数据,并将其发送到缓冲区,然后将其记录到控制台,其中一个数据已完成存储 e、 g Src:
var http = require('http');
//The url we want is: 'www.random.org/integers/?num=1&min=1&max=10&col=1&base=10&format=plain&rnd=new'
var options = {
host: 'www.random.org',
path: '/integers/?num=1&min=1&max=10&col=1&base=10&format=plain&rnd=new'
};
callback = function(response) {
var str = '';
//another chunk of data has been recieved, so append it to `str`
response.on('data', function (chunk) {
str += chunk;
});
//the whole response has been recieved, so we just print it out here
response.on('end', function () {
console.log(str);
});
}
http.request(options, callback).end();