nodejs发送http请求,如何保持获取的数据,并且返回到页面
发布于 1 个月前 作者 zhouyix 343 次浏览 来自 问答
var data="";
router.post(’/report/get’,function(reqs,res){
var urlStr=’http://xxxxxxx/slot/list';//发送的请求地址
var body=reqs.body;//发送的字段{colNum,currentPage}
console.log(“colNum”+JSON.stringify(body));
var contentStr=queryString.stringify(body);
var opt={
	“hostname”:url.parse(urlStr).hostname,
	“path”:url.parse(urlStr).path,
	“method”:“POST”,
	“port”:3000,
	“headers”:{
		‘Content-Type’: ‘application/x-www-form-urlencoded’,
		‘Content-Length’: Buffer.byteLength(contentStr, ‘utf8’)
	}
};
var httpModule = urlStr.indexOf(‘https’) === 0 ? https : http;
var req = httpModule.request(opt, function(httpRes) {
	var buffers = [];
	httpRes.on(‘data’, function(chunk) {
		buffers.push(chunk);
	});

	httpRes.on('end', function(chunk) {
		var wholeData = Buffer.concat(buffers);
		var dataStr = wholeData.toString('utf8');
		console.log('content'+wholeData);
		data=wholeData;
		//res.send(JSON.stringify(buffers));
	});
}).on('error', function(err) {
	console.log('error ' + err);
});;
//写入数据,完成发送
req.write(contentStr);
req.end();
res.send(JSON.stringify(data));

由于异步的原因,返回的data都是初始的时候的数据,怎样才能保持下来,返回到页面

2 回复

把最后一句放到你注释的那一行。出错的时候再发送另一个response。

建议用pipe,最快的可能是用request+pipe,试试:https://github.com/request/request

回到顶部