先放几种后端遇到的异常,多数和数据库有关
python
pymysql.err.InternalError: Packet sequence number wrong - got 102 expected 1
127.0.0.1 - - [09/May/2024 17:49:37] "GET /monitorLastTenList HTTP/1.1" 500
python
AttributeError: 'NoneType' object has no attribute 'read'
127.0.0.1 - - [09/May/2024 17:49:37] "GET /alarmTotal HTTP/1.1" 500 -
python
使用pymysql报错err.ProgrammingError: execute() first
异常代码如下:
c
onMounted(() => {
// getList();
// getPeopleTotal().then(({ data }) =>{
// // 更新人数总量
// peopleTotal.value = data.total;
// })
getPeopleTotal().then(response => {
// 打印请求返回的数据
console.log('Total people count:', response.data);
// 更新人数总量
peopleTotal.value = response.data.total;
}).catch(error => {
console.error('Error fetching total people count:', error);
});
getJieKouTotal().then(response => {
// 打印请求返回的数据
console.log('Total JieKou count:', response.data);
// 更新调用接口总量
jieKouTotal.value = response.data.total;
}).catch(error => {
console.error('Error fetching total JieKou count:', error);
});
getTimeTotal().then(response => {
// 打印请求返回的数据
console.log('Total Time count:', response.data);
// 更新时间总量
timeTotal.value = response.data.total;
}).catch(error => {
console.error('Error fetching total Time count:', error);
});
getAlarmTotal().then(response => {
// 打印请求返回的数据
console.log('Total alarm count:', response.data);
// 更新预警总量
alarmTotal.value = 100;
}).catch(error => {
console.error('Error fetching total alarm count:', error);
});
getMonitorLastTenList().then(response => {
// 打印请求返回的数据
console.log('Total monitor count:', response.data);
// 更新监控总量
monitordataList.value = response.data.dataList;
// 更新车流量预警统计图表数据
carFlow.series[0].data = monitordataList.value;
}).catch(error => {
console.error('Error fetching total monitor count:', error);
});
getClassList().then(response => {
// 打印请求返回的数据
console.log('Total class count:', response.data);
// 更新监控总量
carCount.value = response.data.dataList[0];
busCount.value = response.data.dataList[1];
vanCount.value = response.data.dataList[2];
// 更新饼状图数据
pieChartData = [
{ value: carCount.value, name: '小汽车' },
{ value: vanCount.value, name: '厢式货车' },
{ value: busCount.value, name: '公交车' },
];
category.series[0].data = pieChartData
}).catch(error => {
console.error('Error fetching total class count:', error);
});
})
修改毕设vue代码,很多知识已经忘掉了,全程和gpt一起找bug,最后也没问出来什么,分析了一下应该是同时访问数据库次数太多了,让gpt帮忙修改了一下。
我:怎么让这几个函数一个一个的执行,否则会经常数据库异常
gpt: 你可以使用 JavaScript 中的 Promise 链来确保这些函数按顺序执行,并在前一个函数执行成功后再执行下一个函数。下面是一个示例代码,展示了如何使用 Promise 链来实现:
c
onMounted(() => {
getPeopleTotal()
.then(response => {
console.log('Total people count:', response.data);
peopleTotal.value = response.data.total;
return getJieKouTotal(); // 返回一个 Promise 对象,使得下一个函数能够等待当前函数执行完毕后再执行
})
.then(response => {
console.log('Total JieKou count:', response.data);
jieKouTotal.value = response.data.total;
return getTimeTotal();
})
.then(response => {
console.log('Total Time count:', response.data);
timeTotal.value = response.data.total;
return getAlarmTotal();
})
.then(response => {
console.log('Total alarm count:', response.data);
alarmTotal.value = 100;
return getMonitorLastTenList();
})
.then(response => {
console.log('Total monitor count:', response.data);
monitordataList.value = response.data.dataList;
carFlow.series[0].data = monitordataList.value;
return getClassList();
})
.then(response => {
console.log('Total class count:', response.data);
carCount.value = response.data.dataList[0];
busCount.value = response.data.dataList[1];
vanCount.value = response.data.dataList[2];
pieChartData = [
{ value: carCount.value, name: '小汽车' },
{ value: vanCount.value, name: '厢式货车' },
{ value: busCount.value, name: '公交车' },
];
category.series[0].data = pieChartData;
})
.catch(error => {
console.error('Error fetching data:', error);
});
});
完美解决!