V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
elevioux
V2EX  ›  JavaScript

electron + vue 如何连接 mysql

  •  
  •   elevioux · 2020-07-31 09:27:41 +08:00 · 4777 次点击
    这是一个创建于 1574 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想做个客户端自己用。

    发现在 electron 载入的入口文件 public/index.html 写 mysql 连接是正常的。

    但当把代码写到模板 .vue 文件里的话 ,就会出现 net 模块为空对象的情况,导致错误。

    感觉就像是 vue 把 nodejs 的 net 模块 禁用了一样。

    想问一下是什么原因导致的?

    14 条回复    2020-07-31 14:08:13 +08:00
    edk24
        1
    edk24  
       2020-07-31 10:32:36 +08:00
    数据库操作 业务 放在后端, 不然不安全

    并且你的用户都都会和数据库进行长连接, 增加数据库压力负载
    --------

    把数据库操作和核心业务放在后端, 这样保证安全. 其次在后端用长连接&连接池 能减轻数据库压力
    edk24
        2
    edk24  
       2020-07-31 10:33:36 +08:00
    客户端要用数据库的话, 推荐用 sqlite 之类的代之
    miniwade514
        3
    miniwade514  
       2020-07-31 10:34:40 +08:00
    你看报错上面那行 log 打出来的是空对象啊。可能是 vue-cli 的配置问题?把非浏览器环境的模块给屏蔽了?没用过,瞎猜的。
    elevioux
        4
    elevioux  
    OP
       2020-07-31 10:37:52 +08:00
    @edk24 自己用的工具。而且数据库要定时更新,所以只能放在 vps 上。发现一个 vue+electron 的脚手架 https://github.com/SimulatedGREG/electron-vue 解决了这个问题。虽然还是不知道什么原因。
    qiuxiaojie
        5
    qiuxiaojie  
       2020-07-31 10:43:49 +08:00
    有兴趣可以加我微信 cWl1c2hpamllXw==,最近有在搞类似的东西😁
    qiuxiaojie
        6
    qiuxiaojie  
       2020-07-31 10:44:40 +08:00
    electron 分 render 和 main 的,连 mysql 肯定是在 mian 去连
    plqws
        7
    plqws  
       2020-07-31 10:45:56 +08:00
    require('electron').remote.require('mysql')
    让整个模块都在 main process 加载
    Chenamy2017
        8
    Chenamy2017  
       2020-07-31 10:47:23 +08:00
    代码贴出来,我用 Electron + vue 连接过 PostgreSQL
    pockry
        9
    pockry  
       2020-07-31 10:54:35 +08:00
    放个人 vps 上,就用 node 写个最简单的 API 服务器呗,直连 MySQL 太骚,在公网暴露服务端数据库接口,分分钟被黑。
    elevioux
        10
    elevioux  
    OP
       2020-07-31 11:10:18 +08:00
    @qiuxiaojie
    @plqws

    electron-vue 可以在 renderer 里写 mysql 连接。不过用 main 去连应该才是好的思路。


    @pockry

    这个也是考虑过的。后面 mysql 看能不能加上 fail2ban+ssl,不知道够不够。
    sam014
        11
    sam014  
       2020-07-31 11:48:18 +08:00
    可以在 main 进程里连接数据库,再上 express 起个接口就行了
    duan602728596
        12
    duan602728596  
       2020-07-31 12:10:31 +08:00
    1 、据说 electron 的 net 模块确实改过,nwjs 不清楚
    2 、可以在试试 global.require('net')引入模块
    liuhuihao
        13
    liuhuihao  
       2020-07-31 13:53:07 +08:00
    通过 IPC,放主线程里,别扔渲染进程里
    w950888
        14
    w950888  
       2020-07-31 14:08:13 +08:00
    直连数据库?这是要做数据库管理软件吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:41 · PVG 04:41 · LAX 12:41 · JFK 15:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.