第三节 Electron运行流程 、 主进程渲染进程并使用nodejs

本文详细介绍了Electron应用的运行流程,包括主进程和渲染进程的概念,以及如何在主进程和渲染进程中使用Node.js。通过示例展示了在主进程中直接使用Node模块以及在渲染进程中通过preload脚本和直接引入Node模块的方式进行交互。同时,文中给出了在渲染进程中使用Node模块时遇到的问题及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、electron运行流程

二、主进程渲染进程介绍

三、 Electron 主进程和渲染进程中使用 Nodejs 以及 Nodejs 第三方模块


一、electron运行流程

运行项目找到package.json的入口文件(属性main的值)即为主进程,加载入口文件 实例化BrowserWindow,加载本地index.html即为渲染进程

二、主进程渲染进程介绍

package.json 中定义的入口被 称为主进程。 在主进程中实例化 BrowserWindow 创建的
Web 页面被称为渲染进程。主进程只有一个  渲染进程可以有多个 。

三、 Electron 主进程和渲染进程中使用 Nodejs 以及 Nodejs 第三方模块

1、主进程可以直接使用node模块

修改主进程main.js 引入模块fs 并在createWindow方法中读取package.json文件并打印文件内容

const fs = require("fs");
fs.readFile("package.json", (err, data) => {
    if (err) {
      console.log(err);
      return;
    }
    console.log("data", data.toString());
  });

重启项目效果如下:

2、渲染进程使用node模块 有两种方式

1》preload方式 完整代码

根目录下新建文件夹renderer 文件preload.js 代码如下:

const fs= require("fs")

// 渲染进程使用nodejs的第一种方式
fs.readFile("package.json",(err,data) =>{
  if(err){
    console.log(err)
  }
  console.log(data.toString())
})

修改主进程main.js 设置属性webPreferences 

webPreferences:{
      preload:path.join(__dirname,"renderer/preload.js")
    }

运行代码 效果如图:

2》渲染文件使用

在renderer文件下新建renderer.js

const fs= require("fs")

// 渲染进程使用nodejs的第二种方式,将文件引入到index.html
fs.readFile("package.json",(err,data) =>{
  if(err){
    console.log(err)
  }
  console.log(data.toString())
})

 在index.html文件中引入renderer.js

    <script src="./renderer/renderer.js"></script>

运行程序,额报错了 报错信息如下

 修改主进程webPreferences的配置

  nodeIntegration:true, // 允许渲染进程使用nodejs
      contextIsolation:false // 允许渲染进程使用nodejs

重启项目 运行截图如下

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hongc93

感谢鼓励 继续航行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值