Skip to content
Permalink
master
Switch branches/tags
Go to file
 
 
Cannot retrieve contributors at this time

Kn-DB

基于 Node.js的数据持久化方案,适合轻量级Node.js应用

npm package

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 } }

KnDB API

· getDB(db_name, [option])

db_name:库名

option配置项:

  • type: 可不填,定义获取数据库实例时的获取方式,在没有找到数据库的情况下,会新建一个空数据库。但当type为check时,则会抛出错误。
  • position: 可不填,数据库存储的位置,默认为当前Node.js程序根目录。
const options = {
    type: 'check',
    position: 'C:\\db', // Linux : 'opt/db/example'
}
const db = knDB.getDB('hello', options);

DB API

· get(table_name)

table_name: 表名

const tableData = db.get('knove'); 

· set(table_name, setData)

table_name: 表名

setData 传表中某个字段的数据

const setAction = db.set('knove', { a: 7 });
if (setAction.errorInfo) {
    console.error(setAction.errorInfo);
}