如何从返回的查询信息中提取某些信息?

时间:2020-12-28 19:42:25

标签: javascript mysql sql node.js

我正在尝试连接到本地托管的 SQL 服务器并查询数据库表上的随机名称。这并不重要,因为我刚刚开始使用 SQL 和 JavaScript,所以我试图轻松开始。但是,在我查询服务器并返回信息并将其转换为字符串并使用 express 写入本地托管网页后,我得到了

{
  'recordsets': [[{'Name': 'Victor'}]],
  'recordset': [{'Name': 'Victor'}],
  'output': {},
  'rowsAffected': [1]
}

我只想从这些信息中获取名称。是否有像 results.Name 这样的简单函数或类似的东西。我使用 MySQL 来托管服务器,使用 node.js 来连接和查询服务器。我想指出与服务器的查询和连接工作正常,express 上的本地网页也按预期工作。我只想从查询中获取名称,以便能够根据查询返回的名称在代码中稍后使用逻辑。

app.get('/', function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  var User_Selected = getRandomInt(1, 4);
  let connection = sql.connect(sqlConfig, (err) => {
    if (err) {
      console.log(err);
    } else {
      res.write('DB Connected');
    }
    connection.query(
      'SELECT Name FROM customers where CustomerId =' + User_Selected,
      function (err, result, fields) {
        if (err) throw err;
        res.write(JSON.stringify(result));
        res.end();
      });

  });

});

1 个答案:

答案 0 :(得分:0)

您从 connection.query 调用中得到的结果是:

const result = {
  'recordsets': [[{'Name': 'Victor'}]],
  'recordset': [{'Name': 'Victor'}],
  'output': {},
  'rowsAffected': [1]
};

您在此处回复此结果的全部内容:

res.write(JSON.stringify(result));

如果您只想使用 Name 属性进行响应,只需将 res.write 替换为:

const name = result.recordset[0].Name;
res.write(name);