Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/paultje52/sqlite-key-value
A key-value database module for sqlite
https://github.com/paultje52/sqlite-key-value
Last synced: about 17 hours ago
JSON representation
A key-value database module for sqlite
- Host: GitHub
- URL: https://github.com/paultje52/sqlite-key-value
- Owner: Paultje52
- License: mit
- Created: 2020-07-24T10:22:59.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-08-08T11:52:31.000Z (over 4 years ago)
- Last Synced: 2024-11-20T00:40:57.623Z (2 months ago)
- Language: JavaScript
- Homepage:
- Size: 9.77 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sqlite-key-value
A database key-value module in sqlite# Setup
First, install `sqlite-key-value`.
- NPM: `npm i -s sqlite-key-value`
- Yarn: `yarn add sqlite-key-value`After that, use Node's `require` function to load in the class.
```js
const Database = require("sqlite-key-value");
```
Lastly, construct the `Database` class to create a database.## Options
There are different options for creating a database. Read them below. Every option is optional!
| Name | Default | Type | Description |
|-------------|---------------|---------------|-----------------------------------------------------------|
| Development | False | Boolean | See [development](development) |
| Cwd | process.cwd() | Compleat path | The path to the folder, starting from the beginning |
| Name | Database | String | The name of the database, without the extention |
| InMemory | False | Boolean | Load the whole database in memory for faster access times |
```js
const path = require("path");
let db = new Database({
development: true, // Easy editable JSON database!
cwd: path.join(__dirname, "databases"), // Folder "databases" under current directory
name: "main-db",
inMemory: true // Not recommended for large databases
});
```## Development
Sqlite databases aren't easy editable, even with an external program. That's why there is a development option. If true, `json-config-store` will be used for the database, so it's easy editable.Don't use json databases for public applications, because JSON databases corrupt fast.
# Using the database
There are four methods. When using a JSON database (during development only!), you're using [json-config-store](https://www.npmjs.com/package/json-config-store).All the methods return a promise that gets resolved when the operation is compleated
## WaitForReady
Returnes a promise that gets resolved when the database is ready!## Get
To get data, use the `get` method, with one parameter: The key you want to get.## Set
To set data, use the `set` method. It has two parameters:
- Key: The key
- Value: Everything that is compatible with `JSON.stringify`.## Delete
To delete a key, use the `delete` method. Just like the `get` method, it has one parameter: The key you want to delete## Example
```js
db.waitForReady().then(async () => {
await db.set("foo", "bar");
console.log(await db.get("foo"));
// > bar
await db.delete("foo");
console.log(await db.get("foo"));
// > undefined
});
```