【问题标题】:How set a value within connection.query function nodejs如何在connection.query函数nodejs中设置一个值
【发布时间】:2020-11-15 03:47:35
【问题描述】:

我正在尝试在 dataArray 中推送行,但它在响应中返回一个空白数组。

 let dataArray = [];
            for (let id=1; id <= 5; id++) {
                dbConnection.query("SELECT firm_name, id FROM stockist WHERE id=?", id, function (error, rows) {
                    if (error) throw error;
                    else {
                        dataArray.push(rows);
                    }
                });
                // console.log("data "+id+" :", data);
            }

【问题讨论】:

标签: node.js


【解决方案1】:

您正在使用 Async / Await 这是一个异步操作,因此您无法在异步之外打印数据。因此,您必须将异步结果存储在一个变量中,然后简单地检查数据是否存在然后打印。

   let dataArray = [];

   for (let id=1; id <= 5; id++) {
        let result = null;
        result = await dbConnection.query("SELECT firm_name, id FROM stockist WHERE id=?", id);
        if (result) {
           console.log(result) //=====> it should contain all rows
           dataArray.push(result);
           // console.log("data "+id+" :", data);
        }
    }

【讨论】:

  • 感谢汗先生。但我想将行数据推送到 dataArray 中。这可能吗?
  • 完成。现在检查。您不需要回调,因为您使用的是 async/await,只需 console.log 即可,您将在结果中找到所有行。
  • Query { _events: [Object: null prototype] { error: [Function (anonymous)], packet: [Function (anonymous)], timeout: [Function (anonymous)] ,结束:[有趣
  • result 打印这种类型的对象。我如何从中检索行
猜你喜欢
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 2019-04-19
  • 1970-01-01
  • 2010-11-17
  • 2019-02-10
  • 2014-01-16
  • 2016-08-26
相关资源
最近更新 更多