首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql插入nodejs时for循环中的代码执行顺序

问mysql插入nodejs时for循环中的代码执行顺序
EN

Stack Overflow用户
提问于 2022-05-30 05:38:56
回答 2查看 161关注 0票数 1

我有一个非常简单的问题,我已经好几天没能解决了。我编写了下面的简单代码块来给出一个示例。

代码语言:javascript
复制
var mysql = require("mysql")

var connection = mysql.createConnection({
  host: "localhost",
  user: "***",
  password: "***",
  database: "***",
  charset: "utf8mb4"
})

var testArr = ["banana", "apple", "orange", "strawberry"]

for (let fruit of testArr) {
    console.log("fruit check:" + fruit)

    var fruitName = connection.escape(fruit)

    var sql = "INSERT INTO test (name) VALUES (" + fruitName + ")";

    connection.query(sql, function (err, result) {
        if (err) throw err;
        console.log("1 record inserted");
    });
}

我在这里要做的唯一一件事就是在进入for循环之后,按顺序进行操作。目前,控制台端如下所示;

代码语言:javascript
复制
fruit check:banana
fruit check:apple
fruit check:orange
fruit check:strawberry
1 record inserted
1 record inserted
1 record inserted
1 record inserted

我想让它变成这样:

代码语言:javascript
复制
fruit check:banana
1 record inserted
fruit check:apple
1 record inserted
fruit check:orange
1 record inserted
fruit check:strawberry
1 record inserted
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-30 07:08:24

使用async - await和mysql2尝试这种方法。

我将查询更改为准备好的语句。

代码语言:javascript
复制
const mysql = require('mysql2/promise');

const loadData = async () => {
  try {
    var connection = await mysql.createConnection({
      host: 'localhost',
      user: '***',
      password: '***',
      database: '***',
      charset: 'utf8mb4',
    });

    var testArr = ['banana', 'apple', 'orange', 'strawberry'];

    for (let fruit of testArr) {
      console.log('fruit check:' + fruit);
      var sql = 'INSERT INTO test (name) VALUES (?)';
      await connection.execute(sql, [fruit])
      console.log('1 record inserted');
    }
  } catch (err) {
    throw err; // Or do something else with the error...
  }
};

loadData();
票数 0
EN

Stack Overflow用户

发布于 2022-05-30 05:58:29

当您连接mysql时,请尝试使用“承诺”,并使用异步/等待。

你可以得到近似答案here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72429583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档