微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我在电子中使用 require 时的问题

如何解决我在电子中使用 require 时的问题

我正在用电子做一个简单的时事通讯应用程序,我需要连接到我的数据库,但是如果我使用“require”来调用 MysqL 库,它会给我“require 未定义”,我尝试使用 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>

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。