Nodejs LocalDB:前端存储框架,web storage 封装,支持跨域数据存储及共享,欢迎小伙伴们提意见

Nodejs LocalDB:前端存储框架,web storage 封装,支持跨域数据存储及共享,欢迎小伙伴们提意见

LocalDB 为开发者提供简单、易用又强大的浏览器端数据存取接口,其被设计用来为 WEB 应用、手机 H5 应用、网页游戏引擎提供浏览器端持久化存储方案。

2014/8/24创建了这个repository,花了一上午的时间对localstorage进行了API的封装,形成了这个项目的雏形,但万万没想到,第一个稳定版本的发布竟然过了四个月的时间。

期间项目经历N次重构,甚至推翻重写,经历了API推翻重新定义,文档及website推翻重写,也经历了由于太忙或者懒于写文档而长久搁置,但最终还是阶段性完成了^_^。

目前支持以下特性:

基于 JSON 文档风格的存储方式 支持多种数据格式的存储,例如:函数、正则表达式 支持基于文档的富查询及排序功能 支持 AMD/CMD/Standalone 等多种模块加载方式 支持数据存取加密功能 智能存储引擎切换 支持域白名单功能,实现跨域共享数据,独特的跨域数据共享解决方案 独特的域数据模块化解决方案 高安全性(可以通过更改proxy来隐藏数据所存储的真实域) 支持 Promise 或 Callback 异步编程 支持 BSON objectId

目前该项目用于内部的一些试验性项目中,希望之后会对其稳定性和性能又进一步的优化,功能上可以进一步扩展,也希望该项目可以给一些小伙伴提供一丝帮助。

项目介绍及API网址: http://localdb.emptystack.net/

项目网址: https://github.com/wh1100717/localDB


2 回复

Nodejs LocalDB:前端存储框架,web storage 封装,支持跨域数据存储及共享,欢迎小伙伴们提意见

概述

LocalDB 为开发者提供简单、易用又强大的浏览器端数据存取接口。它被设计用来为 WEB 应用、手机 H5 应用、网页游戏引擎提供浏览器端持久化存储方案。

项目背景

2014年8月24日创建了这个repository,花了一上午的时间对localStorage进行了API的封装,形成了这个项目的雏形。但令人惊讶的是,第一个稳定版本的发布竟然花了四个月的时间。

项目历程

期间项目经历了多次重构,甚至推翻重写,API经过多次推翻重新定义,文档及website也经历了多次推翻重写。尽管过程中遇到了很多挑战,如因为太忙或懒于写文档而导致项目搁置,但最终还是阶段性完成了。

特性

目前支持以下特性:

  • 基于 JSON 文档风格的存储方式:可以方便地存储复杂的数据结构。
  • 支持多种数据格式的存储:例如函数、正则表达式等。
  • 支持基于文档的富查询及排序功能:可以进行复杂的查询和排序操作。
  • 支持 AMD/CMD/Standalone 等多种模块加载方式:方便集成到不同的开发环境中。
  • 支持数据存取加密功能:确保数据的安全性。
  • 智能存储引擎切换:根据需要自动选择合适的存储方式。
  • 支持域白名单功能,实现跨域共享数据:独特的跨域数据共享解决方案。
  • 独特的域数据模块化解决方案:便于管理和维护。
  • 高安全性:可以通过更改proxy来隐藏数据所存储的真实域。
  • 支持 Promise 或 Callback 异步编程:方便处理异步操作。
  • 支持 BSON objectId:方便与MongoDB等数据库进行数据同步。

示例代码

以下是一个简单的使用示例:

// 引入 LocalDB
import LocalDB from 'localdb';

// 初始化 LocalDB 实例
const db = new LocalDB('myDatabase');

// 存储数据
db.set('user', {
    name: 'John Doe',
    age: 30,
    hobbies: ['reading', 'coding']
});

// 获取数据
db.get('user').then(user => {
    console.log(user); // { name: 'John Doe', age: 30, hobbies: ['reading', 'coding'] }
});

// 查询数据
db.query({ name: 'John Doe' }).then(users => {
    console.log(users); // [{ name: 'John Doe', age: 30, hobbies: ['reading', 'coding'] }]
});

// 删除数据
db.remove('user');

结语

目前该项目主要用于内部的一些试验性项目中,希望未来能进一步优化稳定性和性能,并增加更多的功能。如果这个项目能给一些小伙伴提供帮助,那就再好不过了。

项目链接

期待大家的反馈和建议!


Nodejs LocalDB:前端存储框架,web storage 封装,支持跨域数据存储及共享

概述

LocalDB 是一个为 Web 应用、手机 H5 应用及网页游戏引擎设计的前端存储框架。它通过封装浏览器的 localStoragesessionStorage API,提供了更强大、更易用的数据存储和检索功能。

主要特性

  • 基于 JSON 文档风格的存储:支持文档风格的数据存储。
  • 多种数据格式支持:除了基本类型外,还支持函数、正则表达式等复杂对象。
  • 富查询和排序功能:支持复杂的查询条件和排序操作。
  • 多种模块加载方式:支持 AMD/CMD/Seajs/RequireJS/StandAlone 等模块加载方式。
  • 数据存取加密:提供数据加密功能以增强安全性。
  • 智能存储引擎切换:根据需要自动选择合适的存储引擎。
  • 跨域数据共享:支持域白名单功能,实现跨域数据共享。
  • 高安全性:可以通过更改 proxy 来隐藏数据真实存储域。
  • 异步编程支持:支持 Promise 和 Callback 异步编程模式。
  • BSON objectId 支持:支持 MongoDB 的 ObjectId 格式。

示例代码

以下是一些基本的使用示例:

// 导入 LocalDB
import LocalDB from 'localdb';

// 初始化 LocalDB 实例
const db = new LocalDB({
    domain: 'example.com', // 设置存储域
    encrypt: true, // 是否开启数据加密
});

// 存储数据
db.set('user', { name: 'Alice', age: 30 }).then(() => {
    console.log('Data stored successfully');
}).catch((err) => {
    console.error('Error storing data:', err);
});

// 获取数据
db.get('user').then((data) => {
    console.log('Retrieved user:', data);
}).catch((err) => {
    console.error('Error retrieving data:', err);
});

// 删除数据
db.remove('user').then(() => {
    console.log('Data removed successfully');
}).catch((err) => {
    console.error('Error removing data:', err);
});

使用场景

LocalDB 可以用于:

  • 保存用户配置信息。
  • 缓存 API 响应数据。
  • 存储应用状态以便页面刷新时恢复。
  • 在多标签页之间同步数据。

进一步优化

未来可能会增加更多特性,如性能优化、更多的查询选项、更好的错误处理机制等。欢迎所有小伙伴提出宝贵的意见和建议!

项目链接


希望这个简短的介绍能帮助你更好地理解和使用 LocalDB。如果你有任何问题或建议,请随时在 GitHub 项目中提交 issue 或 pull request!

回到顶部