electron + vue 如何连接 mysql

2020-07-31 09:27:41 +08:00
 elevioux

想做个客户端自己用。

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

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

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

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

4562 次点击
所在节点    JavaScript
14 条回复
edk24
2020-07-31 10:32:36 +08:00
数据库操作 业务 放在后端, 不然不安全

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

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

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


@pockry

这个也是考虑过的。后面 mysql 看能不能加上 fail2ban+ssl,不知道够不够。
sam014
2020-07-31 11:48:18 +08:00
可以在 main 进程里连接数据库,再上 express 起个接口就行了
duan602728596
2020-07-31 12:10:31 +08:00
1 、据说 electron 的 net 模块确实改过,nwjs 不清楚
2 、可以在试试 global.require('net')引入模块
liuhuihao
2020-07-31 13:53:07 +08:00
通过 IPC,放主线程里,别扔渲染进程里
w950888
2020-07-31 14:08:13 +08:00
直连数据库?这是要做数据库管理软件吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/694510

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX