此对象在 运行() 方法的回调函数中为空

This object is empty inside callback function of run() method

我正在使用 NodeJS、Express 和 SQLite 编写服务器以提供 RESTful 服务。

我想创建一个端点以将新用户添加到数据库中。端点收到带有参数 usernamepassword 的 POST 请求,并以 id[=35] 响应=] 新创建的用户。

根据node-sqlite3documentation,当run方法成功时,回调函数中的this对象包含属性lastIDchanges.

我的问题是,即使 run 方法成功并且新用户 successfully 插入到数据库中,this 对象还是空的。

我做错了什么?如何访问 this.lastID

app.post('/users', (req, res) => {
    const {
        username,
        password
    } = req.body;

    db.get(
        `SELECT id
        FROM Users
        WHERE username = ?`,
        [username],
        (err, row) => {
            if (err) {
                console.error(err);
                return res.sendStatus(500);
            } else if (row) {
                return res.status(400).send('Username already exist.');
            }

            db.run(
                `INSERT INTO Users (username, password)
                VALUES (?, ?)`,
                [username, password],
                (err) => {
                    if (err) {
                        console.error(err);
                        return res.sendStatus(500);
                    }
                    console.log(this); // prints {} to the console
                    res.send(this.lastID); // response body is empty
                }
            );
        }
    );
});

尝试使用老式 function 代替箭头函数进行回调。我认为箭头函数 this 不能绑定到一个值。