lowdb数据库的使用教程

简介: lowdb 是一个简单易用的本地 JSON 数据库,使用原生 JavaScript API 进行查询。在几个项目应用过,记录下常用的API和使用技巧。

使用的lowdb版本:“^1.0.0”

一、安装和用法

npm install lowdb@1.0.0

基本用法:

//导入lowdb
const low = require('lowdb');
//导入文件夹
const FileSync = require('lowdb/adapters/FileSync');
const {join} = require("path");
//将建的db.json文件引入 
const adapter = new FileSync(join(__dirname, 'db.json'));
//注册low数据库
const db = low(adapter);

二、常用操作
初始化数据,相当于建表,如果已存在,则不会重复创建,也不会覆盖原有数据。

db.defaults({ 
  posts: [], 
  user: {
    name: 'tiven',
    age: 18,
    city: 'shanghai',
    language: ['javascript', 'nodejs', 'vue', 'react', 'angular']
  } }).write();

查询

// 查询所有数据
db.get('posts').value();

// 查询单条数据
db.get('posts').find({ id: 1 }).value();

// 查询多条数据
db.get('posts').filter({ status: 1 }).value();

// 查询表中数据的条数
db.get('posts').size().value();

// 查询表中是否存在某条数据
db.get('posts').find({ id: 1 }).has('id').value();

// 多属性查询
db.get('users.language').value();

// 获取特定字段集合
db.get('posts').map('id').value();

插入
// 插入单条数据
db.get('posts').push({ id: 1, title: 'lowdb' }).write();

// 插入多条数据
db.get('posts').push([{ id: 1, title: 'lowdb' }, { id: 2, title: 'lowdb' }]).write();

// 插入表中所有数据
db.get('posts').map(({ title, desc, id }) => ({ title, desc, id })).write();

更新
// 更新单条数据
db.get('posts').find({ id: 1 }).assign({ title: 'lowdb' }).write();

// 更新多条数据
db.get('posts').filler({
  age: 18,
}).assign({
  updateAt: new Date(),
}).write();

// 更新属性
db.get('users').set('age', 20).write();
// or
db.set('users.set', 20).write();

删除
// 删除单条数据
db.get('posts').remove({ id: 1 }).write();

// 删除多条数据
db.get('posts').remove({ status: 1 }).write();

// 删除表中所有数据
db.get('posts').remove().write();

// 移除属性
db.unset('users.name').write();

排序
// 升序 asc 
db.get('posts').sortBy('age').value();

// 降序 desc
db.get('posts').orderBy('age', 'desc').value();

// 截取 0 ~ 5 条数据
db.get('posts').take(5).value();

深拷贝
db.get('users').cloneDeep().value();

更多使用方法请参考:lodash 官方文档 ,基本都是通用的。

三、进阶用法
数据加解密


var crypto = require('crypto')

var cipher = crypto.createCipher('aes256', secretKey)
var decipher = crypto.createDecipher('aes256', secretKey)

low.stringify = function(obj) {
  var str = JSON.stringify(obj)
  return cipher.update(str, 'utf8', 'hex') + cipher.final('hex')
}

low.parse = function(encrypted) {
  var str = decipher.update(encrypted, 'hex', 'utf8') + decipher.final('utf8')
  return JSON.parse(str)
}

首先,你需要安装 `axios` 和 `lowdb` 这两个库。`axios` 用于发送请求,`lowdb` 是一个轻量级的本地 JSON 数据库。 可以使用以下命令进行安装: ``` npm install axios lowdb ``` 接下来,你可以创建一个 `db.json` 文件,用于存储数据。以下是一个示例: ```json { "users": [ { "id": 1, "name": "Alice", "email": "alice@example.com" }, { "id": 2, "name": "Bob", "email": "bob@example.com" }, { "id": 3, "name": "Charlie", "email": "charlie@example.com" } ] } ``` 然后,你可以创建一个 `db.js` 文件,并在其中初始化 `lowdb`: ```js const low = require('lowdb'); const FileSync = require('lowdb/adapters/FileSync'); const adapter = new FileSync('db.json'); const db = low(adapter); // 设置默认值 db.defaults({ users: [] }).write(); module.exports = db; ``` 在上面的示例中,我们设置了默认值为一个空数组,并导出了 `db` 对象。 接下来,你可以在你的代码中使用 `axios` 来请求你的本地数据库。以下是一个示例: ```js const axios = require('axios'); const db = require('./db'); axios.get('http://localhost:3000/users') .then(response => { // 将响应中的数据保存到本地数据库 db.set('users', response.data).write(); }) .catch(error => { console.log(error); }); ``` 在上面的示例中,我们使用 `axios` 发送了一个 GET 请求,并将响应中的数据保存到我们的本地数据库中。请注意,我们假设我们的本地服务器运行在 `http://localhost:3000` 上,并且有一个名为 `users` 的路由用于获取用户数据。 现在,你可以使用 `db` 对象来查询和操作你的本地数据库了。例如: ```js const db = require('./db'); const users = db.get('users').value(); console.log(users); ``` 在上面的示例中,我们获取了本地数据库中的所有用户数据,并将它们打印到控制台上。 希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值