【发布时间】:2025-12-27 17:25:05
【问题描述】:
所以最奇怪的事情正在发生。
我有这个 node.js express 服务器,我想在它启动时运行一个函数。
当它启动时,它会在我的数据库中查询一组由于太旧而应该被删除的对象。我有一个 for 循环,我想用它来删除它们。但是当 for 循环开始并且我有一个变量(在这种情况下它现在应该被称为迭代器)设置为 0,var iterator = 0 但它一直被设置为我的数组的长度。
所以当 for 循环开始时,迭代器不是等于 0,而是等于 3。然后当循环发生时,它会中断,因为它尝试访问 data[3].ChildID; 以获取大小为 3 的数组,而不是 @ 987654323@
这可能是什么原因造成的?
app.listen(3000, function() {
console.log("Launch successful. To access app, open your browser and insert the following URL into your address bar: http://localhost:3000/");
// var i = 0;
// setInterval(updateDB.callUnenrolledList(function(err, data){
// if(err) {
// // do nothing
// }
// // send the data
// console.log("Checking for Unenrolled Children...");
// res.send(data);
// }), 1000);
updateDB.callUnenrolledList(function(err, data){
if(err) {
// do nothing
}
console.log("Checking for Unenrolled Children...");
if(data.length < 1){
console.log("Database is up to date. No Children Deleted");
//Do nothing. There are no unenrolled children
} else {
//Check to see if children have been "idle" for 5 years (arbitrary time set by SPCCC) and delete them if they have been
var currentDate = new Date();
var iterator = 0;
for(iterator; iterator < data.length; iterator++);{
console.log(iterator);
// var unenrolledDate = new Date(data[i].unenrolledDate);
var unenrolledDate = new Date("5/4/2017");
var difference = currentDate - unenrolledDate;
if(difference > 86400000){
console.log("Over 1 day old. Delete child!");
console.log(iterator);
var child = data[a].ChildID;
var ID = {ChildID: child};
updateDB.deleteChildFromDatabasePermanently(ID);
console.log("child deleted");
} else{
//do nothing
}
// if(difference > 157700000000){
// console.log("Over 5 years old. Delete child!");
// }
}
}
});
});
【问题讨论】:
标签: javascript node.js variables for-loop