我正在将Node.js连接到Android App。 当我运行'npm start'时,会发生错误(TypeError:无法读取未定义的属性'length')。
似乎它没有从MySQL接收'rows'属性(行数)。
router.get('/:phone', function(req, res, next){
var phone = req.params.phone;
var sql = "SELECT * FROM bestfood_member WHERE phone = ? LIMIT 1;";
console.log("sql : "+ sql);
db.get().query(sql, phone, function (err, rows){
console.log("rows : " + JSON.stringify(rows));
console.log("row.length : " + rows.length);
if(rows.length > 0){
res.json(rows[0]);
} else {
res.sendStatus(400);
}
});
});
有什么问题?
答案 0 :(得分:1)
您的SQL查询可能存在错误。您需要检查查询是否已成功执行。
if (err) throw err;
答案 1 :(得分:0)
您可以使用这些代码行。 rowCount 会告诉你你有多少行。几天后我也找到了这个解决方案。
db.get().query(sql, phone, function (err, rows){
console.log("rows : " + JSON.stringify(rows));
console.log("rows.rowCount : " + rows.rowCount);