如何在带异步和池的Node中使用Mysql2获取MySQL的InsertID?

How to get insertId for MySQL using Mysql2 in Node with async and pool?(如何在带异步和池的Node中使用Mysql2获取MySQL的InsertID?)
本文介绍了如何在带异步和池的Node中使用Mysql2获取MySQL的InsertID?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用带有mysql2和pooling的异步等待,但我认为我做错了事情。下面是我的代码(正如我所说的,我不确定我是否在这里做事情)。

    const pool = mysql.createPool({
      host: 'localhost',
      user: 'root',
      database: 'test',
      password: '',
      waitForConnections: true,
      connectionLimit: 10,
      queueLimit: 0
    });
    
    const promisePool = pool.promise();   // Get a Promise wrapped instance of that pool   
    

app.post('/api/register', (req, res) => {

    async function queryDB() {
    
        try {
          const addUser = await promisePool.execute(
            "INSERT INTO users (company, email, password) VALUES (?,?,?)",
            ['Ikea', 'Ikea@ikea.com', '123'],
          )
          const addAnother = await promisePool.execute(
            "INSERT INTO users (company, email, password) VALUES (?,?,?)",
            ['Google', 'Google@google.com', '123']
          )
    
          console.log(addUser)
          res.status(200).json('Users saved')
          
        } catch (err) {
          console.log(err)
          res.status(409).json('User already exist')
        };
      }
    
      queryDB();
})

我们的想法是,应该保存";addUser";,如果它不是唯一的,则会出现错误(因为SQL数据库的电子邮件列设置为UNIQUE),然后添加另一个不会开始插入。

我不明白的是如何从addUser插入中获取插入ID?我需要它来做第二次插入。如果我sole.log addUser,我可以看到如下所示的对象:

ResultSetHeader {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 72,
  info: '',
  serverStatus: 2,
  warn

所以插入ID被发回给我,但我似乎达不到它。如果我尝试获取它,它会显示Can‘t Read Property of Unfined。我觉得我做错了,那么我应该如何做才能获得intertID?

推荐答案

结果似乎在数组中。我用addUser[0].insertId解决了它。但是,我从未让LAST_INSERT_ID()起作用。

这篇关于如何在带异步和池的Node中使用Mysql2获取MySQL的InsertID?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)
SSIS: Model design issue causing duplications - can two fact tables be connected?(SSIS:模型设计问题导致重复-两个事实表可以连接吗?)