开发者问题收集

Node.js-TypeError:无法读取未定义的属性“length”

2018-02-18
5421

我正在将 Node.js 连接到 Android 应用程序。 当我运行“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个回答

您的SQL查询可能错误。您需要检查查询是否已成功执行。

如果(err)投掷err;

mbrandau
2018-02-18

您可以使用这些代码行。rowCount 将告诉您有多少行。几天后我也找到了这个解决方案。

db.get().query(sql, phone, function (err, rows){
        console.log("rows : " + JSON.stringify(rows));
        console.log("rows.rowCount : " + rows.rowCount);

    
Haseeb Tariq
2021-07-06