electron-egg electron-egg
首页
  • v4.x
  • v3.x
  • v2.x
插件
  • v4.x
  • v3.x
demo
支持
知识点
案例
交流
  • GitHub (opens new window)
  • Gitee (opens new window)
首页
  • v4.x
  • v3.x
  • v2.x
插件
  • v4.x
  • v3.x
demo
支持
知识点
案例
交流
  • GitHub (opens new window)
  • Gitee (opens new window)
❤️成为赞助商
  • 快速入门

  • 基础功能

    • 目录结构
    • 生命周期
    • 前端模块

    • 控制器
    • 服务层
    • 预加载层
    • 插件

    • 通信

    • 数据库

      • json数据库
        • sqlite数据库
      • 任务

      • 日志
      • 额外资源目录
      • 调试
      • 脚本工具
      • DLL使用
      • 调用第三方程序
      • 远程模式
    • 生成软件

    • 升级

    • 跨语言支持

    • 更新记录
    • 常见问题
    目录

    json数据库

    ee-core: v1.2.8

    ee-core: v2.0.3 重写json数据库

    # 基础

    # 特点

    • 小数据量: 0~100M(单库)
    • json数据库
    • 兼容lodash语法

    # 数据文件位置

    打包前:项目根目录

    electron-egg/data/xxx.json
    

    打包后:软件缓存目录

    # windows (例子)
    C:\Users\Administrator\AppData\Roaming\软件名(如:ee)\data\xxx.json
    
    # macOS (例子)
    Users/apple/Library/Application Support/软件名(如:ee)/data/xxx.json
    
    # Linux (例子)
    $XDG_CONFIG_HOME or ~/.config/软件名(如:ee)/data/xxx.json
    

    # 示例

    • 连接数据
    'use strict';
    
    const { Service } = require('ee-core');
    // 框架提供的数据库对象
    // ee-core:v2.0.1
    const Storage = require('ee-core/storage'); 
    const _ = require('lodash');
    
    /**
     * 数据存储
     * @class
     */
    class StorageService extends Service {
    
      constructor (ctx) {
        super(ctx);
        
        // jsondb数据库
        
        // ee-core所使用的库
        this.systemDB = Storage.connection('system');
        
        // demo库
        let jsondbOptions = {
          driver: 'jsondb'
        }
        this.demoDB = Storage.connection('demo', jsondbOptions);  
      }
    }
    
    module.exports = StorageService;
    
    • 增加数据
    /*
    * 增 Test data
    */
    async addTestData(user) {
      const key = this.demoDBKey.test_data;
      if (!this.demoDB.db.has(key).value()) {
        this.demoDB.db.set(key, []).write();
      }
      
      const data = this.demoDB.db
        .get(key)
        .push(user)
        .write();
      
      return data;
    }
    
    • 删除数据
    /*
    * 删 Test data
    */
    async delTestData(name = '') {
      const key = this.demoDBKey.test_data;
      const data = this.demoDB.db
        .get(key)
        .remove({name: name})
        .write();
      
      return data;
    }
    
    • 修改数据
    /*
    * 改 Test data
    */
    async updateTestData(name= '', age = 0) {
      const key = this.demoDBKey.test_data;
      const data = this.demoDB.db
        .get(key)
        .find({name: name}) // 修改找到的第一个数据,貌似无法批量修改 todo
        .assign({age: age})
        .write();
      
      return data;
    }
    
    • 查找数据
    /*
    * 查 Test data
    */
    async getTestData(age = 0) {
      const key = this.demoDBKey.test_data;
      let data = this.demoDB.db
        .get(key)
        //.find({age: age}) 查找单个
        .filter(function(o) {
          let isHas = true;
          isHas = age === o.age ? true : false;
          return isHas;
        })
        //.orderBy(['age'], ['name']) 排序
        //.slice(0, 10) 分页
        .value();
      
      if (_.isEmpty(data)) {
        data = []
      }
      
      return data;
    }
    
    /*
    * all Test data
    */
    async getAllTestData() {
      const key = this.demoDBKey.test_data;
      if (!this.demoDB.db.has(key).value()) {
        this.demoDB.db.set(key, []).write();
      }
      let data = this.demoDB.db
        .get(key)
        .value();
      
      if (_.isEmpty(data)) {
        data = []
      }
      
      return data;
    }
    

    # 更多语法

    # Storage对象文档

    请查看:文档

    # lodash文档

    请查看:文档 (opens new window)

    上次更新: 2025/06/06, 07:21:49
    通信-ipcRender.js
    sqlite数据库

    ← 通信-ipcRender.js sqlite数据库→

    Theme by Vdoing | Copyright © 2023-2025 哆啦好梦 | 京ICP备15041380号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×