sqlite3更新查询刷新电子渲染器进程

Poo*_*esh 0 javascript node.js knex.js electron node-sqlite3

我意识到,当我在 Electron JS 中使用 knex (使用 sqlite3)更新查询时,查询完成后,渲染器进程会自动刷新!例如:

索引.html:

ipc.send('UpdateTheRow', {'Id': 1, 'Title': 'foo', 'Date': '01-01-2020'});
Run Code Online (Sandbox Code Playgroud)

main.js

    ipcMain.on('UpdateTheRow', (event, newData)=>{
        knex('Products').where({id: newData.Id}).update({
            title: newData.Title,
            enter_date: newData.Date
        }).then(function (res) {
            console.log(res);
        });
    });
Run Code Online (Sandbox Code Playgroud)

运行更新请求后,控制台打印 Response ,但渲染器刷新!

换句话说,当我们做这样的事情时:

在 Main.js 中使用以下命令重新获取 console.log:

indexPage.webContents.send("EditedTheRow", res);
Run Code Online (Sandbox Code Playgroud)

在index.html中

ipc.on('EditedTheRow', (event, response) => {
   alert('Updated');
}
Run Code Online (Sandbox Code Playgroud)

查询工作正常,但我们在渲染器中没有收到任何警报

抱歉我的英语不好。

Poo*_*esh 6

回答:

我的案例中的主要问题是几个框架的干扰!
我使用的是 sqlite3,因此数据库作为文件保存在我的“根”项目文件夹中。
除此之外,我使用“热重载”框架来注意到文件更改。
每次我使用诸如更新、插入、删除之类的查询来更改数据库时,我的数据库文件都会更改,并且热重新加载器会刷新渲染器进程!