Node.js - TypeError:无法读取未定义

时间:2018-02-18 12:46:59

标签: node.js

我正在将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);
        }
    });
});

有什么问题?

2 个答案:

答案 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);