Javascript 如何在express中从sql中获取值?

Javascript 如何在express中从sql中获取值?,javascript,node.js,express,node-mysql,Javascript,Node.js,Express,Node Mysql,我被困在express node js中的问题之一。我收到错误“url未定义” 出现此错误是因为未在任何地方定义url变量 MySQL请求的结果在回调的第二个参数中可用: app.get("/id", function(req, res, next) { var id = req.param("id"); connection.query('SELECT `url` FROM dynamic_url where id ='+req.param("id"), function (error

我被困在express node js中的问题之一。我收到错误“url未定义”


出现此错误是因为未在任何地方定义
url
变量

MySQL请求的结果在回调的第二个参数中可用:

app.get("/id", function(req, res, next) {
  var id = req.param("id");
  connection.query('SELECT `url` FROM dynamic_url where id ='+req.param("id"), function (error, rows, fields) {
    if (err) {
      return next(err);
    }
    var url;
    if (rows.length === 0) {
      url = 'URL not available in database'
    } else {
      url =  rows[0].url;
    }
    res.send("value of url is " + url);
  });
});

检查示例请求。

add info,您正在使用哪个sql模块我现在无法测试它,但我想说您应该使用:rows[0].url(如果它不起作用,只需执行console.log(rows)即可,您将看到响应结构)。我曾尝试使用它。它给出的错误0没有定义。实际上,忘记了最后一个参数。已更新我的答案以包含它。这不是错误。
数组包含对象。请使用
JSON.stringify()
console.log()
,以了解它们包含的内容。好的,是否有任何方法可以获取字符串数据或将JSON转换为字符串?正如我在前面的评论中所述,
JSON.stringify(行)
将对象转换为字符串。
app.get("/id", function(req, res, next) {
  var id = req.param("id");
  connection.query('SELECT `url` FROM dynamic_url where id ='+req.param("id"), function (error, rows, fields) {
    if (err) {
      return next(err);
    }
    var url;
    if (rows.length === 0) {
      url = 'URL not available in database'
    } else {
      url =  rows[0].url;
    }
    res.send("value of url is " + url);
  });
});