2017-07-23 44 views
0

面临着与MySQL查询一个问题开展工作,如下所述,MySQL查询在节点JS不工作,同样的查询终端上

我有一个查询,如下给出其附近返回我的用户,

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 +'具有距离<'+距离+'ORDER BY距离;

看起来把值之后,

SELECT *,SQRT(POW(69.1 *(user_lat - 18.5914),2)+ POW(69.1 *(73.917 - user_long)* COS(user_lat/57.3) ,2))AS距离FROM用户WHERE不是user_id = 1有距离< 10 ORDER BY distance;

如果我打从它的Node.js下面给出返回我的错误,但在同一时间同一查询,如果我通过终端打这个查询返回results.PFA enter image description here

.... ./node_modules/mysql/lib/protocol/Parser.js:79 throw err; //重新抛出非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 !!!!" 
     }); 
    } 
} 
+0

你的Nodejs代码在哪里? –

+0

请检查更新后的节点js代码。 –

+0

您使用了'console.log(result [0] .json);'而不是'console.log(results [0] .json);'。这就是你得到RefenceError的原因。只是错字:) –

回答

0

,当你有其他错误(大成通常这个错误)在你的块内处理错误。就像Dylan Dang看到的一样。

产生了另一个错误,并且没有启动mysql错误。