有没有一种方法可以使用 addEventListener 将内容可编辑的内容自动保存到 sqlite 数据库中?

Is there a way to autosave contenteditable content to a sqlite-database with addEventListener?

我正在用 Electron 构建一个简洁的文本编辑器,并希望自动保存在 <div id="editor" contenteditable="true"> 中输入的所有内容。如何做到这一点?

目前,只需单击一个按钮即可进行保存,相当简单:

document.getElementById("saveChanges").onclick = function() { }

我试图将上面的行更改为:

document.addEventListener('keydown', function(e) {
    for (var i = 0; i < editor.length; i++)

这行不通,但我也不知道为什么不行。它不会给出任何错误,但也不会执行任何操作。

我做错了什么?

// This is the code that doesn't work

document.addEventListener('keydown', function(e) {
    for (var i = 0; i < editor.length; i++)
    {
        let content = document.getElementById("editor").innerHTML;

        console.log(content);

        const sqlite3 = require('sqlite3').verbose();

        let db = new sqlite3.Database('./appdata/resources/protodatabase.evv');

        let sql = 'UPDATE Subchapters SET subtext=? WHERE subid=1';

        db.run(sql, content, function (err) {
            console.log();
            if (err) {
            return console.error(err.message);
        }});

    db.close();
    };
    });

其实我自己想出来了:

var editable = document.getElementById('editor');
editable.addEventListener('keydown', function(e) {
    // execute code when spacebar or enter is pressed
    var toets = e.keyCode;
    if (toets == 32 || toets == 13)

这个效果很好。但是代码非常非常占用磁盘空间。需要弄清楚如何将数据库放在内存中,在那里进行所有更改并定期将其保存到磁盘上的数据库...