基于 Node.js的数据持久化方案,适合轻量级Node.js应用
English | 简体中文
Kn-DB是基于原生Node.js的数据持久化方案。
目前与其说是数据库,不如说可以用来轻量的数据保存,如果你的应用不需要存储大量的数据,那么你可以考虑Kn-DB!摆脱大型第三方数据库的束缚!
- 导入方便,非常适合存储非大型数据!可以保存你想保存的任何信息!
- 在推广你的Node.js应用时候可以避免用户必须安装第三方数据库(例如 mySQL, mongoDB 等)才能实现数据存储,更适合推广。
// 使用 npm
npm install kndb
// 或使用 yarn
yarn add kndb
使用非常简洁方便,一切都是同步运行:
const knDB = require('kndb');
const db = knDB.getDB('hello');
if (db.success) {
db.get('knove'); // {}
db.set('knove', { value: 7 });
db.get('knove'); // { value: 7 }
} else {
console.error(db.errorInfo);
}
嵌套数据使用也很方便:
// 现在这里object的初值是 { innerValue: 2 }
const { object } = db.get('knove');
object.innerValue = 7;
db.set('knove', { object });
db.get('knove').object.innerValue; // 7
不推荐层级太多,推荐数据扁平。一个比较复杂的例子:
db.set('knove', {
value1: 0,
value2: 0
});
db.set('knove', { value1: 1 });
db.get('knove') // { value1: 1, value2: 0 }
即在处理第一级的数据时,set 时不用管同级的其他元素。例子这里没有传入 value2,value2 的值不会变化。
但是如果 第一级元素是一个 object,则 object 中全部元素都会被覆盖:
db.set('knove', {
object: { num1: 0, num2: 0 },
});
db.set('knove', { object: { num1: 2 } });
db.get('knove') // { object: { num1: 2 } }
- type: 可不填,定义获取数据库实例时的获取方式,在没有找到数据库的情况下,会新建一个空数据库。但当type为check时,则会抛出错误。
- position: 可不填,数据库存储的位置,默认为当前Node.js程序根目录。
const options = {
type: 'check',
position: 'C:\\db', // Linux : 'opt/db/example'
}
const db = knDB.getDB('hello', options);
const tableData = db.get('knove');
const setAction = db.set('knove', { a: 7 });
if (setAction.errorInfo) {
console.error(setAction.errorInfo);
}