当前位置: 首页 > news >正文

哪些公司提供微信做网站服务网页游戏网站大全免费软件

哪些公司提供微信做网站服务,网页游戏网站大全免费软件,wordpress nginx伪静态,建筑工程承包合同书前言 window环境。 electron28.0.0 sqlite35.1.6 使用 electron-builder 打包。 本文旨在解决打包后无法写入数据库的问题。 但如果你是打包后无法访问sqlite#xff0c;且有报错弹窗#xff0c;不妨也看看本文。 也许是同一种原因。 错误原因分析 打包后无法创建db文件28.0.0 sqlite35.1.6 使用 electron-builder 打包。 本文旨在解决打包后无法写入数据库的问题。 但如果你是打包后无法访问sqlite且有报错弹窗不妨也看看本文。 也许是同一种原因。 错误原因分析 打包后无法创建db文件是因为大部分人连接db 都是用path模块采用 path.join(__dirname, data.db) 类似这样的写法。 因为网上的垃圾教程都是这么教的笔者也深受其害。 默认情况下打包后获得的目录格式为假设你的输出目录是dist/ /dist/xxx.exe /dist/resources/app.asar xxx.exe是你的主程序。 electron打包后的项目根目录指向app.asar 文件。 所以如果你在node里写的源代码是 const filePath path.resolve(app.getAppPath(), storage, data.db) const db new sqlite3.Database(filePath)在打包后程序执行到这里会去请求/dist/resources/app.asar/storage/data.sb文件。 再举一个例子 假如你的项目目录是 myproject/package.json myproject/main.js myproject/src/dbserver/mydb.js myproject/src/storage/data.db 然后在你mydb.js中这样写 const filePath path.resolve(__dirname, ../storage/data.db) const db new sqlite3.Database(filePath)在调试时候肯定是没问题的。 但是打包后所有资源默认都被打包进app.asar且根目录符号链接到app.asar。 程序执行到这里就会请求/resources/app.asar/src/storage/data.db这个地址。 如果你的打包设置是正确的这一步并不会报错因为data.db的的确确被打包进了这个路径。 你可以正确读取。 但是 app.asar是一个只可读不可写的文件。 当你要写入数据库的时候就会发现怎么都无法写甚至程序不报错。 因为用promise封装的db写入请求只会一直pending而不会reject。 为什么 app.asar只可读不可写 某种意义上你可以把它看成程序的一部分。 如果app.asar被改写了你可以认为你的程序遭到了入侵。 一般而言electron甚至鼓励你去校验app.asar的完整性来确保自己的分发版本是正确的。 看起来这是一个合理的设计。 所以我们要做的应该是让我们的db请求路径不要指向app.asar。 正确解法 不要使用node提供的相对路径功能。 不要使用__dirname 变量。 不要使用electron.app.getAppPath()。 这些东西最后都会指向app.asar。 在生产环境就写一个相对路径字符串。 const isPackaged app.isPackaged; let filePath; if(isPackaged){filePath path.resolve(./resources/storage/data.db) } else{filePath path.resolve(__dirname, ../storage/data.db) } const db new sqlite3.Database(filePath)同时在pakcge.json中配置extraResources字段。 build:{extraResources: {from: ./src/storage/,to: storage}, }这样整个/myproject/src/storage 目录都会被复制到/dist/resources/storage/位置。 这样最后程序执行db时会指向/dist/resources/storage/data.db位置。 因为在path.resolve(./resources/storage/data.db) 这条命令中的. 指向当前xxx.exe的运行位置。 这同样暗示我们data.db应该作为一个外部文件管理不应该放在src里。 src应该视为程序本体在打包后运行时永远不变。 而data.db这种属于外部资源打包后运行时会动态改变。 外部资源不应该在src里。 我上面举例的这种项目结构是不合理的。
http://www.w-s-a.com/news/160872/

相关文章:

  • 中国最大的建站平台广告传媒公司取名
  • 深圳网站设计公司专业吗学动漫设计后悔死了
  • 企业网站形象建设网站开发入职转正申请书
  • 网站设计步骤济南建设网中标公告
  • 石佛营网站建设wordpress关健词
  • 您的网站空间即将过期建站 discuz
  • 上海简站商贸有限公司福州哪家专业网站设计制作最好
  • 博客网站开发流程苏州专业做网站的公司哪家好
  • 四川手机网站建设西安 网站 高端 公司
  • 织梦大气绿色大气农业能源化工机械产品企业网站源码模版建筑工程知识零基础
  • 广州番禺网站公司v2017网站开发
  • 微信公众号怎么做微网站wordpress和dz
  • 西部数码网站管理助手 301福州搜索优化实力
  • 响应式网站介绍页面模板功能找不到
  • 公司网站如何seo自己做资讯网站
  • 天津网站建设软件开发招聘企业信用信息查询公示系统上海
  • 网站备案中做正品的网站
  • 网站建设0基础学起青海企业网站开发定制
  • 网站定制项目上海快速建站
  • 大型视频网站建设方案东莞企业网站建设开发
  • 西安php网站制作可以用AI做网站上的图吗
  • 网站开发工程师和前端企业网络推广公司
  • 泉州开发网站的公司有哪些电脑网页翻译
  • 河北省建设机械会网站首页刚做的网站怎么收录
  • 什么网站专门做自由行的framework7做网站
  • 网页设计与网站建设书籍包头住房与城乡建设局网站
  • 重庆网站建设平台免费猎头公司收费收费标准和方式
  • 形象设计公司网站建设方案书打开一个不良网站提示创建成功
  • 网站手机页面如何做网站关键字 优帮云
  • 免费的黄冈网站有哪些下载软件系统软件主要包括网页制作软件