鍍金池/ 問答/HTML/ node.js http請求問題

node.js http請求問題

為什么我頁面第一次請求為空,第 二次請求才有數(shù)據(jù)
var express=require('express');
var http = require('https');
var app=express();
var options = {
host: 'api.douban.com',
path: '/v2/book/1220562'
};
var body = '';
var callback = function(response){

response.on('data', function(data) {

  body += data;

});

response.on('end', function() {

  console.log(body);

});
}
app.get('/',function(req,res){

var req1 = http.request(options, callback);
console.log('第一次請求'+body);
req1.end();
res.json(body);

});
var server = app.listen(8081, function () {

var host = server.address().address;
var port = server.address().port;
console.log("應(yīng)用實(shí)例,訪問地址為 http://%s:%s", host, port);

})

回答
編輯回答
怪痞

異步的原因,你的 body 最開始定義為空,而 http.request 又是一個(gè)異步的過程,所以第一次請求時(shí) request 的結(jié)果異步賦值給 body 這個(gè)過程還沒結(jié)束,直接就返回了 body 初始定義的空字符串。

2017年2月28日 21:45