为什么我页面第一次请求为空,第 二次请求才有数据
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("应用实例,访问地址为 http://%s:%s", host, port);
})
异步的原因,你的 body 最开始定义为空,而 http.request 又是一个异步的过程,所以第一次请求时 request 的结果异步赋值给 body 这个过程还没结束,直接就返回了 body 初始定义的空字符串。