【问题标题】:Elctronjs and SQLite 3 not returning last idElectron Js 和 SQLite3 不返回最后一个 id
【发布时间】:2021-09-17 06:21:04
【问题描述】:

我正在使用 sqlite 3 数据库开发电子应用程序。我想在数据库中保存数据后获取最后插入的 ID。

我已在查询下运行,但调用结果始终显示未定义。谁能帮我解决这个问题?

db.run(`INSERT INTO  myTable (data1, data2) VALUES (aa, bb)`, (err) => {
            console.log(this.lastID)
            if (err) {
                console.log(err)
            } else {

                console.log( this.lastID)
            }

数据库插入成功但结果,this.lastID 结果未定义。

【问题讨论】:

    标签: javascript node.js electron node-sqlite3


    【解决方案1】:

    这是因为您使用的是箭头语法。将this 上下文设置为父级的箭头语法。你应该这样做:

    db.run(`INSERT INTO  myTable (data1, data2) VALUES (aa, bb)`, function (err)  {  
                console.log(this.lastID)
                if (err) {
                    console.log(err)
                } else {
    
                    console.log( this.lastID)
                })
    

    调用、应用和绑定方法不适合箭头函数——因为它们被设计为允许方法在不同的范围内执行——因为箭头函数基于定义箭头函数的范围建立“this”。

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 2018-07-11
    • 1970-01-01
    • 2013-09-13
    • 2016-06-27
    相关资源
    最近更新 更多