首页 > 解决方案 > 我在电子中使用 require 时的问题

问题描述

我在电子中做一个简单的时事通讯应用程序,我需要连接到我的数据库,但是如果我使用“require”来调用 mysql 库,它会给我“require is not defined”,我尝试使用 browsify 但它没有工作,有人可以帮助我吗?(此脚本位于 HTML 页面中)

<script>
    document.getElementById("btn").addEventListener("click", () => {
                    var mysql = require (['./node_modules/mysql']);
                    var connection = mysql.createConnection({
          host: 'localhost',
          user: 'user',
          password: 'password',
          database: 'db',
          });
          
          $sql = 'SELECT `id`,`first_name`,`last_name`,`email`  FROM `subscribers`';
          
          connection.query($sql, function (error, results, fields) {
            if (error) throw error;
            console.log(results);
            $('#resultDiv').text(results[0].email);
          });
           
          connection.end();
    
    
                })
</script>

标签: node.jselectronrequire

解决方案


Require 不是标准 JS API 的一部分,它是 Node API 的一部分。这里有一篇很棒的文章。渲染 HTML 的 electron 中的渲染器进程无法直接访问节点 API。您可以设置像 Angular 或 React 这样的框架,为您提供更强大的开发环境,或者您可以在主进程中使用 Node API 为您获取数据。您可以使用 IPC 调用来回发送信息,以允许 HTML 页面向主进程发出需要信息的信号。这里的文档很好地展示了这是如何完成的。

我认为使用 Web 开发框架而不是为此目的使用 IPC 调用会更成功。


推荐阅读