【发布时间】:2022-01-26 06:05:20
【问题描述】:
我有这个:
function afterCreateThePayment(req, res, rows) {
for (var i = 0; i < rows.length; i++) {
console.log(rows.length)
var selecter = "SELECT * from SCHEDULE WHERE CLIENT_USERNAME = ? AND SESSION_STATUS = ?"
//pass rows into this function
mysqlconn.connect(function(err) {
if (err) {
console.error('Database connection failed: ' + err.stack);
return;
}
mysqlconn.query(selecter, [rows[i]["USERNAME"], 'CONFIRMED'], async function(err, scheduleData) {
if (err) {
console.log(err);
}
for (var x = 0; x < scheduleData.length; x++) {
console.log(scheduleData[x])
}
// mysqlconn.end();
})
})
}
}
如您所见,我将rows 传递给此函数,然后尝试使用rows[i]["USERNAME"] 作为查询参数之一。但是,当我这样做时,我得到了错误
TypeError: Cannot read property 'USERNAME' of undefined
所以我不确定在这里做什么,或者我的逻辑是否正确。有人可以帮忙吗?
【问题讨论】:
-
你能在函数的第二行做一个console.log(rows)吗?你在那里做什么?
-
@JohnniO。它返回我需要的所有内容,表中的所有数据
-
当您在循环开始之后编写 console.log(rows[i]) 时会得到什么?是否有一个名为 USERNAME 的属性?也许这个属性在 rows[i] 内的数组中?
-
@JohnniO。它再次返回我想要的所有值。
username确实存在,它是从我的数据库表中返回的数据。我认为问题在于,当我在此处定义的技术新功能mysqlconn.connect(function(err) {中使用rows[i]["USERNAME"]时。但如果我通过行,它仍然给我同样的错误。所以这就是让我感到困惑的地方!
标签: javascript mysql sql node.js