【发布时间】: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。只是错字:)