Невозможно отправлять и получать данные в electron

#javascript #electron #knex.js

#javascript #electron #knex.js

Вопрос:

Я создаю приложение electron и не могу отправлять или получать данные. Я хочу отправить данные, которые возникли в my main.js , в my mainWindow.html . Я использую knex с sqlite 3. Я попробовал несколько подходов. Любая помощь приветствуется, спасибо.


Соответствующий код


main.js

 app.on("ready", function () {
    [...]

    taskContents = [];

    knex
    .select("task")
    .from("task")
    .then((task) => {
        for (var i = 0; i < task.length; i  ) {
            // console.log(task[i].task);
            taskContents.push(task[i].task);
        }

            // I want to send task contents ===================
        ipcMain.on("item:task", function(e, taskContents){
        mainWindow.webContents.send("item:task", taskContents);
    
    }
        

    }).catch(function (error) {
        console.error(error);
    });

    [...]    

});
  

mainWindow.html

   ipcRenderer.on("item:tasks", function(e, item){
    console.log(item);
  });
  

Ответ №1:

В main.js у вас есть этот код:

 ipcMain.on("item:task", function(e, taskContents){
    mainWindow.webContents.send("item:task", taskContents);
}
  

Это означает, что он будет ждать item:task сообщения в основном процессе, прежде item:task чем сообщение будет отправлено mainWindow .

Я бы предложил удалить ipcMain.on подобное:

 mainWindow.webContents.send("item:task", 'messageData');
  

Но также в вашем mainWindow.html вы используете item:tasks вместо item:task :

Например, должно быть:

 ipcRenderer.on("item:task", function(e, item){
  

Вместо:

 ipcRenderer.on("item:tasks", function(e, item){
  

Комментарии:

1. В моей консоли по-прежнему ничего не отображается.