1
1
# lowdb [ ![ ] ( http://img.shields.io/npm/dm/lowdb.svg?style=flat )] ( https://www.npmjs.org/package/lowdb ) [ ![ Node.js CI] ( https://github.com/typicode/lowdb/actions/workflows/node.js.yml/badge.svg )] ( https://github.com/typicode/lowdb/actions/workflows/node.js.yml )
2
2
3
3
> Simple to use type-safe local JSON database 🦉
4
+ >
5
+ > If you know JavaScript, you know how to use lowdb.
4
6
5
7
Read or create ` db.json `
6
8
7
9
``` js
8
10
const db = await JSONFilePreset (' db.json' , { posts: [] })
9
11
```
10
12
11
- Update data using ` Array.prototype.* ` and automatically write to ` db.json `
13
+ Use plain JavaScript to change data
12
14
13
15
``` js
14
16
const post = { id: 1 , title: ' lowdb is awesome' , views: 100 }
17
+
18
+ // In two steps
19
+ db .data .posts .push (post)
20
+ await db .write ()
21
+
22
+ // Or in one
15
23
await db .update (({ posts }) => posts .push (post))
16
24
```
17
25
@@ -24,17 +32,18 @@ await db.update(({ posts }) => posts.push(post))
24
32
}
25
33
```
26
34
27
- In the same spirit, query using native ` Array.prototype.* `
35
+ In the same spirit, query using native ` Array ` functions:
28
36
29
37
``` js
30
38
const { posts } = db .data
31
- const first = posts .at (0 )
32
- const results = posts .filter ((post ) => post .title .includes (' lowdb' ))
33
- const post1 = posts .find ((post ) => post .id === 1 )
34
- const sortedPosts = posts .toSorted ((a , b ) => a .views - b .views )
39
+
40
+ posts .at (0 ) // First post
41
+ posts .filter ((post ) => post .title .includes (' lowdb' )) // Filter by title
42
+ posts .find ((post ) => post .id === 1 ) // Find by id
43
+ posts .toSorted ((a , b ) => a .views - b .views ) // Sort by views
35
44
```
36
45
37
- It's that simple.
46
+ It's that simple. ` db.data ` is just a JavaScript object, no magic.
38
47
39
48
## Sponsors
40
49
0 commit comments