LiteJsonDB is a lightweight local JSON database for Node.js, designed to simplify JSON data management in your projects. This package is a fork of the Python LiteJsonDB project, adapted for Node.js. Currently, this project is about 45% complete, meaning it's already super functional but still has room for more cool features.
LiteJsonDB is like a nifty little vault for your JSON data. It provides a simple and intuitive API for adding, modifying, retrieving, and deleting data. You don't need to worry about the complexities of heavier database systems. With LiteJsonDB, you can focus on what really matters: your data.
To get started with LiteJsonDB, you need to install it via npm. It's super easy! Just run the following command in your terminal:
npm install litejsondb
Once installed, you can import LiteJsonDB and initialize your database like this:
const litejsondb = require('litejsondb'); const db = new litejsondb();
Adding data is a breeze with LiteJsonDB. Use the setData
method to store information in the database:
db.setData('users/1', { name: 'Aliou', age: 30 }); db.setData('products/1', { name: 'Laptop', price: 999.99 });
To update existing data, use editData
. You can modify information without erasing whatโs already there:
db.editData('users/1', { age: 31 });
The getData
method allows you to retrieve data from the database. You can specify the exact path of the data you want to access. Hereโs how you can use it:
console.log('User 1:', db.getData('users/1')); console.log('Product 1:', db.getData('products/1'));
Explanation:
'users/1'
or 'products/1'
to retrieve specific entries from the database. The key path is a string that denotes the location of the data in the hierarchical structure of the database.getData
may return undefined
. Ensure you handle such cases in your code to avoid errors.Need to delete data? No problem! The deleteData
method allows you to remove specific information. You have two options:
Delete Specific Entry: If you want to delete a specific entry, provide the exact key path:
db.deleteData('products/1');
This command will remove only the data located at 'products/1'
, leaving other data intact.
Delete All Data Under a Path: If you want to delete all data under a specific key path, you can use a nested key path:
db.deleteData('products');
This will remove the entire 'products'
section, including all entries within it, such as 'products/1'
and any other nested products.
Explanation:
'products/1'
, you delete only that particular entry.'products'
deletes everything under that path. This is useful for clearing out all related data but should be used carefully to avoid unintentional data loss.You can also search your data with searchData
. This helps you find specific values anywhere in the database:
const searchResults = db.searchData(db.getData(), 'Aliou'); console.log(searchResults);
LiteJsonDB includes some handy utility functions:
Hereโs how you can use them:
const hashedPassword = db.hashPassword('myPassword123'); const isPasswordValid = db.checkPassword(hashedPassword, 'myPassword123'); const defaultValue = db.getOrDefault(testObj, 'country', 'Unknown'); const keyExists = db.keyExistsOrAdd(testObj, 'country', 'Unknown');
Hereโs a small example to show you how everything works together:
const litejsondb = require('litejsondb'); const db = new litejsondb(); // Set initial data db.setData('users/1', { name: 'Aliou', age: 30 }); db.setData('products/1', { name: 'Laptop', price: 999.99 }); // Edit data db.editData('users/1', { age: 31 }); // Get data console.log('User 1:', db.getData('users/1')); console.log('Product 1:', db.getData('products/1')); // Delete Data db.deleteData('products/1'); // Show the entire database content console.log('Database Content:', db.showDb());
LiteJsonDB is a fork of our Python LiteJsonDB package. Iโve managed to reproduce about 45% of the work so far, and it's already functional with features like adding, editing, and deleting data. However, thereโs still a lot to be done!
If you have skills in both Node.js and Python, you might want to dive into the code and contribute to the Node.js project. Currently, Iโm focused more on Python development and may not have enough time to add all the desired features to this package.
Your contributions could help move the project forward and make it even better. Feel free to explore the code and get involved!
If you want to contribute to the project, feel free to open issues or pull requests. Every contribution is welcome to help make this project even better!