https://github.com/ajayos/nodedb
DATABASE using nodejs
https://github.com/ajayos/nodedb
ajay ajayos database db sql sqlite3
Last synced: about 1 month ago
JSON representation
DATABASE using nodejs
- Host: GitHub
- URL: https://github.com/ajayos/nodedb
- Owner: Ajayos
- License: apache-2.0
- Created: 2023-04-29T14:04:34.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-08-20T13:25:49.000Z (over 1 year ago)
- Last Synced: 2025-03-04T09:46:50.636Z (about 2 months ago)
- Topics: ajay, ajayos, database, db, sql, sqlite3
- Language: JavaScript
- Homepage:
- Size: 62.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NodeDB
NodeDB is a simple key-value store for Node.js, built on top of SQLite.
## Installation
You can install NodeDB using npm:
```sh
npm install @ajayos/nodedb
```## Setup
1. Install NodeDB using npm:
```sh
npm install @ajayos/nodedb
```2. Import and create an instance of the DB class with a custom database file path:
```javascript
const DB = require('@ajayos/nodedb');
const customDBPath = '/path/to/custom/database/file.db';
const nodedb = new DB(customDBPath);
```3. Use the available functions to interact with the database, as demonstrated in the examples below.
## Project Description
NodeDB provides an efficient way to manage key-value data in your Node.js applications by leveraging the power of SQLite. It offers a lightweight and embedded database solution suitable for small to medium-sized projects. Whether you need to store user profiles, configuration settings, or any other structured data, NodeDB simplifies the process by providing easy-to-use functions for storing, retrieving, and deleting data.
## Functions and Usage
### `setDB(tableName, rowName, data)`
Inserts or updates a row in the specified table with the specified key and data.
#### Example Usage:
```javascript
await nodedb.setDB('users', 'ajay', { name: 'Ajay o s', age: 20 });
```### `getDB(tableName, rowName)`
Retrieves a row from the specified table with the specified key, or all rows if no key is specified.
#### Example Usage:
```javascript
const ajay = await nodedb.getDB('users', 'ajay');
console.log(ajay); // { name: 'Ajay o s', age: 20 }
```#### Example Usage (All Rows):
```javascript
const allUsers = await nodedb.getDB('users');
console.log(allUsers); // [ { rowName: 'ajay', data: { name: 'Ajay o s', age: 20 } }, ... ]
```### `deleteDB(tableName, rowName)`
Deletes a row from the specified table with the specified key, or the entire table if no key is specified.
#### Example Usage:
```javascript
await nodedb.deleteDB('users', 'ajay');
```#### Example Usage (Delete Table):
```javascript
await nodedb.deleteDB('users');
```### `setDATA(tableName, rowName, data: any)`
Similar to `setDB`, but stores data without JSON stringifying it.
#### Example Usage:
```javascript
await nodedb.setDATA('metadata', 'version', 1.2);
```### `getDATA(tableName, rowName)`
Similar to `getDB`, but retrieves data without JSON parsing it.
#### Example Usage:
```javascript
const version = await nodedb.getDATA('metadata', 'version');
console.log(version); // 1.2
```#### Example Usage (All Rows):
```javascript
const allVersions = await nodedb.getDATA('metadata');
console.log(allVersions); // [ { rowName: 'version', data: 1.2 }, ... ]
```### `deleteDATA(tableName, rowName)`
Similar to `deleteDB`, but deletes data without JSON parsing it.
#### Example Usage:
```javascript
await nodedb.deleteDATA('metadata', 'version');
```#### Example Usage (Delete Table):
```javascript
await nodedb.deleteDATA('metadata');
```Example
Here's a complete example of how to use NodeDB to interact with a database:```javascript
const DB = require('@ajayos/nodedb');// Define a custom database file path
const customDBPath = 'mydatabase.sql';// Create an instance of the DB class
const nodedb = new DB(customDBPath);async function main() {
// Set data using setDB
await nodedb.setDB('users', 'ajay', { name: 'Ajay o s', age: 20 });// Get data using getDB
const ajay = await nodedb.getDB('users', 'ajay');
console.log('Retrieved Data:', ajay);// Delete a specific row using deleteDB
await nodedb.deleteDB('users', 'ajay');
}// Run the main function
main().catch((error) => {
console.error('An error occurred:', error);
});
```## Note
For functions like `deleteDB` and `deleteDATA`, if you provide only the `tableName`, the entire table will be deleted. To delete a specific row, provide both `tableName` and `rowName`.
## License
NodeDB is licensed under the Apache License 2.0. See the [LICENSE](/LICENSE) file for details.
## Repository
You can find the repository for NodeDB on GitHub at [https://github.com/Ajayos/nodedb](https://github.com/Ajayos/nodedb)