有两个文件,文件b如下:
var http=require('http');
module.exports=function(options,callback){
console.info('start');
var result;
var req = http.request(options, (res) => {
console.log(`STATUS: ${res.statusCode}`);
console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
res.setEncoding('utf-8');
res.on('data', (chunk) => {
result=JSON.parse(chunk)
result=result.result;
callback(result)
});
// res.on('end', () => {
// console.log('No more data in response.')
// })
});
req.on('error', (e) => {
console.log(`problem with request: ${e.message}`);
});
// write data to request body
req.end();
}
然后在文件a require,如下:
getWeather=require('./getWeather');
var save=require('./saveWeather');
var result=getWeather(options,function(result){
console.log(result)
save.houliData(result,'bg_hourly_weather')
save.dailyData(result,'bg_daily_weather')
});
有的时候程序能正常运行,但是有的时间会报错
这是什么原因?求指教~~~~
这段有问题,当
data
事件被响应时,chunk
可能并不是完整的数据,因此你不能在此处使用JSON.parse(chunk)
,你应该等所有数据接收完毕时再解析。