节点 sqlite3 LastID 未返回

问题描述 投票:0回答:1

我试图在从 Electron.js 应用程序将数据插入 SQLite 表后返回 lastID。虽然数据插入到表中,但 LastID 没有返回

这是 electronics main.js 中的代码

   ipcMain.on('categories:add',(e,category)=>{
      try {
          Category.insert(
             category.name,
            category.description
          );
        } catch (error) {
         console.log(error)
        }
    })

这是来自category.js的代码 从 './db_connection' 导入 {db}

 class Category{

   constructor(name,description){
    this.name = name,
    this.description = description
    
  }

  static createTable(){
    let sql = `CREATE TABLE IF NOT EXISTS  categories(
        id  INTEGER PRIMARY KEY AUTOINCREMENT,
        name    TEXT,
        description TEXT
    )`

    return db.run(sql)
}

static insert(name,description){
   db.run(` INSERT INTO categories VALUES(?,?,?) `,
            [this.lastID,name,description],(err)=>{
                if(err){
                    return console.log(err.message)
                }
                return console.log(this.lastID)
        })
}

}

插入后如何获取lastID 作为响应

node.js electron
1个回答
0
投票

看起来像是使用箭头函数作为回调的范围问题。使用经典函数为我解决了这个问题,例如:

  db.run(`INSERT INTO categories VALUES(?,?,?) `,
           [this.lastID, name, description], function(err) {
               if (err) {
                   return console.log(err.message)
               }
               return console.log(this.lastID)
       })
}

我也不确定

static
在这里的用法,也可能会干扰
this

© www.soinside.com 2019 - 2024. All rights reserved.