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/
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');
结语
目前该项目主要用于内部的一些试验性项目中,希望未来能进一步优化稳定性和性能,并增加更多的功能。如果这个项目能给一些小伙伴提供帮助,那就再好不过了。
项目链接
- 项目介绍及API网址:http://localdb.emptystack.net/
- 项目网址:https://github.com/wh1100717/localDB
期待大家的反馈和建议!
Nodejs LocalDB:前端存储框架,web storage 封装,支持跨域数据存储及共享
概述
LocalDB 是一个为 Web 应用、手机 H5 应用及网页游戏引擎设计的前端存储框架。它通过封装浏览器的 localStorage
和 sessionStorage
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!