node.js - nodeJS,偶尔报错
本文介绍了node.js - nodeJS,偶尔报错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
有两个文件,文件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')
});
有的时候程序能正常运行,但是有的时间会报错
这是什么原因?求指教~~~~
解决方案
res.on('data', (chunk) => {
result=JSON.parse(chunk)
result=result.result;
callback(result)
});
这段有问题,当 data
事件被响应时,chunk
可能并不是完整的数据,因此你不能在此处使用 JSON.parse(chunk)
,你应该等所有数据接收完毕时再解析。
这篇关于node.js - nodeJS,偶尔报错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文