想做个客户端自己用。
发现在 electron 载入的入口文件 public/index.html 写 mysql 连接是正常的。
但当把代码写到模板 .vue 文件里的话 ,就会出现 net 模块为空对象的情况,导致错误。
感觉就像是 vue 把 nodejs 的 net 模块 禁用了一样。
想问一下是什么原因导致的?
1
edk24 2020-07-31 10:32:36 +08:00
数据库操作 业务 放在后端, 不然不安全
并且你的用户都都会和数据库进行长连接, 增加数据库压力负载 -------- 把数据库操作和核心业务放在后端, 这样保证安全. 其次在后端用长连接&连接池 能减轻数据库压力 |
2
edk24 2020-07-31 10:33:36 +08:00
客户端要用数据库的话, 推荐用 sqlite 之类的代之
|
3
miniwade514 2020-07-31 10:34:40 +08:00
你看报错上面那行 log 打出来的是空对象啊。可能是 vue-cli 的配置问题?把非浏览器环境的模块给屏蔽了?没用过,瞎猜的。
|
4
elevioux OP @edk24 自己用的工具。而且数据库要定时更新,所以只能放在 vps 上。发现一个 vue+electron 的脚手架 https://github.com/SimulatedGREG/electron-vue 解决了这个问题。虽然还是不知道什么原因。
|
5
qiuxiaojie 2020-07-31 10:43:49 +08:00
有兴趣可以加我微信 cWl1c2hpamllXw==,最近有在搞类似的东西😁
|
6
qiuxiaojie 2020-07-31 10:44:40 +08:00
electron 分 render 和 main 的,连 mysql 肯定是在 mian 去连
|
7
plqws 2020-07-31 10:45:56 +08:00
require('electron').remote.require('mysql')
让整个模块都在 main process 加载 |
8
Chenamy2017 2020-07-31 10:47:23 +08:00
代码贴出来,我用 Electron + vue 连接过 PostgreSQL
|
9
pockry 2020-07-31 10:54:35 +08:00
放个人 vps 上,就用 node 写个最简单的 API 服务器呗,直连 MySQL 太骚,在公网暴露服务端数据库接口,分分钟被黑。
|
10
elevioux OP @qiuxiaojie
@plqws electron-vue 可以在 renderer 里写 mysql 连接。不过用 main 去连应该才是好的思路。 @pockry 这个也是考虑过的。后面 mysql 看能不能加上 fail2ban+ssl,不知道够不够。 |
11
sam014 2020-07-31 11:48:18 +08:00
可以在 main 进程里连接数据库,再上 express 起个接口就行了
|
12
duan602728596 2020-07-31 12:10:31 +08:00
1 、据说 electron 的 net 模块确实改过,nwjs 不清楚
2 、可以在试试 global.require('net')引入模块 |
13
liuhuihao 2020-07-31 13:53:07 +08:00
通过 IPC,放主线程里,别扔渲染进程里
|
14
w950888 2020-07-31 14:08:13 +08:00
直连数据库?这是要做数据库管理软件吗?
|