【问题标题】:mysql query not working in Node js, same query working on terminalmysql查询在Node js中不起作用,在终端上运行相同的查询
【发布时间】:2017-12-28 21:46:34
【问题描述】:

面临一个与 MySQL 查询相关的问题,如下所述,

我有一个查询返回我附近的用户,如下所示,

SELECT *, SQRT(POW(69.1 * (user_lat - '+startlat+'), 2) + POW(69.1 * ('+startlng+' - user_long) * COS(user_lat / 57.3), 2)) AS 距离用户 WHERE NOT user_id = '+user_id+' HAVING distance

负责放置值,

SELECT *, SQRT(POW(69.1 * (user_lat - 18.5914), 2) + POW(69.1 * (73.917 - user_long) * COS(user_lat / 57.3), 2)) 与用户的距离 WHERE NOT user_id = 1 HAVING distance

如果我从 node.js 中点击相同的查询,它会返回如下所示的错误,但同时如果我通过终端点击此查询,它会返回 results.PFA

...../node_modules/mysql/lib/protocol/Parser.js:79 抛出错误; // 重新抛出非 MySQL 错误 ^ ReferenceError:结果未定义 ......

节点JS代码:

near_by_user: function (req, res) {

    var startlat = parseFloat(req.query.user_lat);
    var startlng = parseFloat(req.query.user_long);
    var distance = parseFloat(req.query.distance);
    var user_id = parseInt(req.query.user_id);

    if ((startlat != null) && (startlng != null) && (distance != null) && (user_id != null)) {

        var sql_query = 'SELECT *, SQRT(POW(69.1 * (user_lat - '+startlat+'), 2) + POW(69.1 * ('+startlng+' - user_long) * COS(user_lat / 57.3), 2)) AS distance FROM users WHERE NOT user_id = '+user_id+' HAVING distance < '+distance+' ORDER BY distance';
        console.log(sql_query);

        db_conn.query(sql_query, function (error, results, fields) {
            if (error) {
                console.log(error);
                res.send({
                    "error": true,
                    "message": "Somthing wrong with db upadate !!!!"
                });
            } else {
                console.log(result[0].json);
                res.send({
                    "error": false,
                    "users": results
                });
            }
        });
    } else {
        res.send({
            "error": true,
            "message": "Invalid Params !!!!"
        });
    }
}

【问题讨论】:

  • 你的 Nodejs 代码在哪里?
  • 请检查更新的节点js代码。
  • 您使用了console.log(result[0].json); 而不是console.log(results[0].json);。这就是为什么你得到一个RefenceError。只是错字:)

标签: mysql node.js


【解决方案1】:

此错误是指您的块内有另一个错误(通常是语法)来处理该错误。就像 Dylan Dang 看到的一样。

又产生一个错误,mysql错误没有启动。

【讨论】:

    猜你喜欢
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2021-12-19
    • 2012-07-06
    相关资源
    最近更新 更多