gpt4 book ai didi

node.js - 将数据发送到渲染器进程

转载 作者:行者123 更新时间:2023-12-03 12:34:50 26 4
gpt4 key购买 nike

我正在使用"electron": "^4.1.4",并且我通过sqlite3数据库中的knex获取数据。

我试图通过ipcMain调用发送数据。在下面找到我的main.js

const {
app,
BrowserWindow,
ipcMain
} = require('electron')

// require configuration file
require('dotenv').config()

// database
const knex = require('./config/database')

// services
const {
ScheduledContent
} = require('./service/ScheduledContent')

require('electron-reload')(__dirname);

let mainWindow

const contentService = new ScheduledContent(knex)
ipcMain.on('content-edit', async (e, args) => {
console.log("content-edit - Backend");
let res = await contentService.getAllContent()
event.sender.send('content-edit-res', res)
})

function createWindow() {
mainWindow = new BrowserWindow({
width: 1000,
height: 600,
webPreferences: {
nodeIntegration: true
}
})

// and load the index.html of the app.
mainWindow.loadFile('./public/index.html')

mainWindow.on('closed', function () {
mainWindow = null
})
}

app.on('ready', createWindow)

app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit()
})

app.on('activate', function () {
if (mainWindow === null) createWindow()
})

我的 renderer.js如下所示:
const {
ipcRenderer
} = require('electron')

console.log("loaded renderer.js 123")


document.addEventListener('DOMContentLoaded', pageLoaded);

function pageLoaded() {
console.log('The page is loaded');
ipcRenderer.send('content-edit', 'x')
}

ipcRenderer.on('content-edit-res', (event, arg) => {
console.log(arg)
})

加载页面时,我试图在前端获取数据,然后我想将其追加到 <table id="table1">中的 index.html -tag中

但是,我在前端没有任何数据。

有什么建议我做错了吗?

感谢您的答复!

最佳答案

就目前而言,代码问题...

 // event in receive, not e... 
ipcMain.on('content-edit', async (event, args) => {
console.log("content-edit - Backend");
let res = await contentService.getAllContent()
event.sender.send('content-edit-res', res)
})

但是,作为附加信息,您也可以使用window的 webContents 将数据发送到渲染器进程。
 const BrowserWindow = electron.BrowserWindow;
let win = new BrowserWindow(<your configs>);
win.webContents.send('message', 'Hello from main!');

您可以找到有用的信息 here

关于node.js - 将数据发送到渲染器进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55785855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com