electron sqlite3_electron集成sqlite3,win10上折腾了2天

3d53aabea054dc0fc0294d8f55155625.png
要看解决办法的,直接把文章滚动到最后就行了,很简单。

最近要做个 IM,PC 端选择用 electron,跨端的最佳选择了。桌面端项目,肯定少不了本地数据库,本来想用 sql.js,看了下需要手动拼接 SQL 语句,小型项目可以玩玩,项目大了就有点难受了。

原先的 Nodejs 项目只要是涉及到数据库的,都是用 sequelize,Nodejs 端 ORM 框架首推。由于之前写 Java 代码的,Hibiernate、MyBatis、iBatis 都很熟练了,这个用起来还比较得心应手。

关键是不用手写 SQL。

一、折腾过程

先在 sequelize 看了下支持 sqlite3,然后就开始 install 了。

$ npm install sequelize sqlite3 --save
# or
$ yarn add sequelize sqlite3 --save

安装过程还好,就是时间稍微有点长,然后在项目中增加了 sequelize 的验证代码,尝试启动看下效果,起不来了,错误消息中有这么一行。

Error: Please install sqlite3 package manually

以为是要安装 sqlite3 服务,去官网看了下,确实有个服务可以安装。之前数据库 mysql、oracle、sql server 这些需要跑起来,不都是本地安装个服务么。

仔细想想,不对,我这个客户端项目,将来是要给用户使用的,不能说让用户都安装个 sqlite 吧。

于是网上找找解决办法吧,找到了一篇,这哥们折腾了4天,有兴趣的可以看看。

ElectronJs: please install sqlite3 package manually

我按照这位大哥的指导,走到 Step9 的时候,卡住了。错误如下截图,意思就是我缺少 C++ 环境,提示让我安装 Visual Studio。

d24c3311efe59993fe9361859dbf6365.png

好,于是去官网下载,安装,最新版 2019 可以了吧。

没想到,Visual Studio 2019是自定义安装,默认就安装一个核心,需要做什么开发就选择安装对应的依赖,没搞过这个,真不知道怎么选。全选是不可能的,太大了,几十个 GB。

那就尝试吧。

桌面、Web、http://Asp.net 挨个试,还好网速快,不然安装就是个半天。但是,始终就是编译不过,错误一如既往的显示上图。

我都想放弃了,手写 sql 算了,想想又不能放弃啊,搞了两天,一行代码还没写呢。

于是,决定再试半天吧,终于找到了。

二、解决办法

项目中需要增加 sequelize 和 sqlite3 的依赖和上面的折腾一样,install 就行了。

Step 1:管理员权限启动 cmd 或者 power shell,执行

$ npm install --vs2015 -g windows-build-tools

安装过程有点慢,请耐心等候。

Step 2:项目中添加 electron-rebuild 依赖

$ npm install electron-rebuild --save-dev

Step 3:项目 package.json 中 scripts 添加 rebuild

"scripts": {"start": "electron .","rebuild": "electron-rebuild -f -w sqlite3"}

Step 4:执行

$ npm run rebuild

如果都提示正确,就搞定了,后面就是写个数据库验证的代码,通过后就开始写 CRUD 的代码了。

PS:搞 Nodejs 开发,最好是提前安装好 Python环境,并且保证命令行可以成功执行 Python命令,最新版的 3 就可以,现在 Nodejs 的包都很多依赖着 Python 和 C++。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下客户端与ntp同步时间,如何在Windows客户端和Linux NTP服务器之间同步时间?...

我希望我的Windows 7机器能够从我的Linux Debian Sid服务器中获取时间.所以我想提前并从Debian存储库安装OpenNTPD.默认情况下它不会监听任何内容,因此我将其配置如下:listen on 192.168.0.1server 0.debian.pool.ntp.orgserver 1.debian.pool.ntp.orgserver 2.debi…

Java的最新发展– 2018年4月下旬

本周Java领域有一些最新的发展,我在本文中总结了其中的一些。 我们知道的JavaOne的终结 Stephen Chin在帖子“ JavaOne活动扩展了更多的曲目,语言和社区以及新名称 ”中说,“ JavaOne会议正在扩展以创建一个新的更大的活动,该活动…

arrays中copyof复制两个数组_C语言100题集合026-使用指针交换两个数组中的最大值

系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。喜欢的同学记得点赞、转发、收藏哦~后续C语言经典100例将会以pdf和代码的形式发放到公众号欢迎关注:计算广告生态 即时查收1 题目函数:max()、swap()功能&#xff1a…

linux 嵌入式串口通信设计目的,基于linux的嵌入式串口通信.doc

PAGE天津电子信息职业技术学院《嵌入式软件编程》课程报告课程名称:基于linux的嵌入式串口通信课程代码: 115229姓 名: 甘琦学 号: 48专 业: 物联网应用技术班 级: 物联S14-1完成时间:2016 年 1…

红头文件rgb红色值_拿下抖音小姐姐,我写了个口红色号识别器

对于广大“钢铁直男”的程序员来说,送什么礼物给女朋友一直是个世纪难题。其实哄女朋友开心最深的套路就是花式送口红,就问谁抵挡得住啊啊啊啊......“没有什么问题是一支口红解决不了的,如果有,那就两支。”于是,直男…

zabbix监控suse linux,SuSE 系统之部署 Zabbix 监控服务

SuSE 系统之部署 Zabbix 监控服务2.4 安装 Apache2 httpd-2.4.2.tar.gz#tar?-zvxf?httpd-2.4.2.tar.gz??#./configure?--prefix/usr/local/services/apache2?--with-apr/usr/local/services/apr/?--with-apr-util/usr/local/services/apr-util/?--with-pcre/usr/local/…

java反射教程_Java反射教程

java反射教程在本教程中,我主要编写一些示例来介绍Java反射可以做什么。 希望它可以给您这个概念的概述。 请留下您的评论以寻求建议。 什么是反射? 简而言之,反射是程序在运行时检查和修改对象的结构和行为的能力。 这个概念有时与内省混合…

腾讯offer是什么样子_月薪35K:2020腾讯Java后端开发详细面试流程

背景2017年我毕业于某不知名二本院校,校招进入一安防企业; 从事于后台服务接入工作。期间一直不断的提高自己,终于在今年如愿以偿,获得腾讯后台开发岗位offer。因此想借此分享成长路上的思考与困难,以及腾讯面试的整个流程。同时在…

Spring Cloud简介–配置(第一部分)

1.概述 Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局…

Linux 实现网页劫持,Linux下实现劫持系统调用的总结(上)--代码及实现

godbach2015-04-07 19:03yzh07137:你好,我看了你的这篇关于linux劫持open调用的文章[url]http://bbs.chinaunix.net/thread-1946913-1-1.html[/url](有点久远了)我在ubuntu12.04.5(内核是3.13.0.20-32-generic)上试验了,结果编译报错了&#…

python下载之后无法启动_安装后启动时,适用于Python的Eric IDE崩溃

On Windows 7 I successfully installed Python 3.73 and then installed Eric 6, the Python IDE. 安装似乎已成功,但是当我启动Eric时,将打开一个窗口,然后出现错误弹出窗口,提示Python已停止。 我非常感谢您为解决此问题提供的…

深度linux更新卡,深度操作系统已发布更新 新增“ apt-get custom-update”命令行

深度操作系统现已发布最新更新,新增“apt-getcustom-update”命令行,支持指定源更新,同时修复了关闭检查应用商店的应用更新后不生效的问题。此外,使用快捷键“ctrlaltR”进行录屏实际触发为截图的问题也已修复。值得一提的是&…

苹果笔记本macbook pro如何安装python_在Mac上兼容安装Python3并保留原先的Python2.7

前言 博主的电脑为2017款macbook pro ,电脑自带python2.7版本,在网上查资料得知由于很多系统服务依赖于自带的2.7py,所以不敢卸载,因此只能安装双兼容python,这里以Python3.7版本为例。 1、安装Xcode Command Line Too…

javafx中的tree_JavaFX中的塔防

javafx中的tree我想长时间使用我的游戏引擎来编写《塔防》游戏,但是由于另一个小组努力创建JavaFX《塔防》游戏,所以我认为我宁愿创建另一款游戏。 从邮件列表中,我了解到不再开发其他游戏。 因此,我决定尝试一下。 塔防是一款非…

ubuntu linux theme,如何在Ubuntu 20.04中启用全局暗黑主题

Ubuntu 20.04在设置实用程序中引入了新的Dark暗模式。但是,当您在Gnome Shell中将其打开时,它并不是完全暗黑。系统任务栏菜单,顶部栏中的日历,通知弹出窗口和桌面上下文菜单不是暗的,而且当您在 Light,Dar…

python3语音识别模块_零基础教你玩转语音控制,学习语音控制技术,打造智能生活很简单...

大家好,我是阿乐,今天给大家讲解一下LD3320语音识别模块。先来看看模块实物,它是长这个样子的:LD3320语音识别模块实物我现在用来给大家做讲解的这个模块是已经集成了单片机在上面,这样子开发起来就更简单一些&#xf…

Apache Derby数据库用户和权限

抽象 Apache Derby很棒! 尤其是在微服务环境中,服务的数据(可能)会缩减,并且不需要更强大的RDBMS。 Derby很棒,因为它非常易于使用,尤其是在涉及用户和权限时,您不需要任何东西&…

c语言程序设计常用语句格式,全国计算机考试二级C语言程序设计要求

(一)C语言的结构1、程序的构成,main函数和其他函数。2、头文件、数据说明、函数的开始和结束标志。3、源程序的书写格式。4、C语言的风格。(二)数据类型及其运算1、C的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。2、C运算符的种类、运算优先级和…

python绘制直方图显示数字_python dataframe中各元素出现次数统计及画直方图

比如: print(Counter(a[0])) Counter({sausage: 825, whole milk: 717, frankfurter: 580, tropical fruit: 482, other vegetables: 460, citrus fruit: 453, pork: 385, rolls/buns: 336, chicken: 311, canned beer: 310, beef: 304, soda: 294, root vegetables…

应用c语言编辑画图程序,应用C语言编辑画图程序

您可能感兴趣的话题:C语言核心提示:笔者在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题笔者在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题.由于电力系统一次接线图比较复杂,用一般的编程…