sqlite3更新查询刷新电子渲染器进程
sqlite3 update query refreshes electron renderer process
我意识到,当我在 electron js 中使用带有 knex(带有 sqlite3)的更新查询时,查询完成后,渲染器进程会自动刷新!
例如:
index.html:
ipc.send('UpdateTheRow', {'Id': 1, 'Title': 'foo', 'Date': '01-01-2020'});
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);
});
});
在 运行 更新请求后,控制台打印响应,但是 渲染器刷新!
换句话说,当我们做这样的事情时:
reaplce console.log in Main.js with:
indexPage.webContents.send("EditedTheRow", res);
并且在
index.html:
ipc.on('EditedTheRow', (event, response) => {
alert('Updated');
}
查询运行良好,但我们在渲染器中没有收到任何警报!
抱歉我的英语不好。
答案:
我的主要问题是几个框架的干扰!
我正在使用 sqlite3,所以数据库在我的 'root' 项目文件夹中保存为一个文件。
沿着这些,我正在使用一个 "Hot Reload" 框架来通知文件更改。
每次我使用更新、插入、删除等更改数据库的查询时,我的数据库文件都会更改,并且热重载器会刷新渲染器进程!
我意识到,当我在 electron js 中使用带有 knex(带有 sqlite3)的更新查询时,查询完成后,渲染器进程会自动刷新! 例如:
index.html:
ipc.send('UpdateTheRow', {'Id': 1, 'Title': 'foo', 'Date': '01-01-2020'});
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);
});
});
在 运行 更新请求后,控制台打印响应,但是 渲染器刷新!
换句话说,当我们做这样的事情时:
reaplce console.log in Main.js with:
indexPage.webContents.send("EditedTheRow", res);
并且在
index.html:
ipc.on('EditedTheRow', (event, response) => {
alert('Updated');
}
查询运行良好,但我们在渲染器中没有收到任何警报!
抱歉我的英语不好。
答案:
我的主要问题是几个框架的干扰!
我正在使用 sqlite3,所以数据库在我的 'root' 项目文件夹中保存为一个文件。
沿着这些,我正在使用一个 "Hot Reload" 框架来通知文件更改。
每次我使用更新、插入、删除等更改数据库的查询时,我的数据库文件都会更改,并且热重载器会刷新渲染器进程!