【问题标题】:document isn't define (Using electron.js)文档未定义(使用 electron.js)
【发布时间】:2021-01-17 01:56:59
【问题描述】:

希望你们都做得很好。您能否详细说明为什么会这样。我有一个 ID 为“登录”的按钮。我想当我按下按钮时我想从数据库中获取数据,但我得到一个错误“文档未定义”。我是 js 新手。渴望收到您的来信。

var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'abc',
  password : abc,
  database : 'abc'
});

connection.connect();



document.getElementById('signin').addEventListener('click', async () => {
Console.log("Hello! ")

})


function newApp() {
  const win = new BrowserWindow({ width: 700, height: 400 })

  win.loadURL(
    url.format({
      pathname: "index.html",
      slashes: true
    })
  );
}

【问题讨论】:

标签: javascript electron


【解决方案1】:

Electron 包含两种不同的 JavaScript 环境。 main process and the renderer process

Main 进程使用 Node.js 运行并提供对 API 的访问,例如 require,它提供对 mysql 模块的访问。

在 Chromium 浏览器中运行的渲染器进程提供对典型浏览器 API 的访问,例如 document 对象。

渲染器中不能使用 MySQL 库,主进程中也不能使用浏览器的 DOM。

您正在尝试在主进程中使用浏览器的 DOM。

查看quick start guide,上面写着:

进程之间的通信可以通过进程间通信 (IPC) 模块:ipcMainipcRenderer

如果您想从 MySQL 获取数据到 DOM,您需要使用 IPC 进程将数据从在 Main 进程(您现在所在的位置)中运行的脚本传递到 Renderer 进程(您可以访问到document 对象)。

【讨论】:

    猜你喜欢
    • 2018-10-21
    • 2022-12-11
    • 2019-08-01
    • 1970-01-01
    • 2022-01-06
    • 2016-05-06
    • 2020-10-26
    • 2015-11-14
    相关资源
    最近更新 更多