2.0.2 • Published 9 years ago
prhone-mdb v2.0.2
PRHONE MDB
PRHONE Mini-DataBase.
Mini-database manager using Node file system API in a relational way for simple storing or for practicing Node web servers without using a real DBMS.
- Promises are used to handle operations.
- Uses a JSON file to store the data.
- All data is stored in tables.
- The identifier of each item in each table is an UUID v4 and its name is
id. - UTF8 is used for encoding.
- When creating a new item:
- If table does not exists, it's created automatically.
- When getting:
- Returns an empty array if table is not found.
- But error if fetching an unique item and it's not found.
- When removing:
- If item does not exists, will be ok.
- In all cases, if JSON file is corrupt, an error will be returned.
Install
npm install --save prhone-mdbUse
__dirname/database.json
Empty file.
__dirname/app.js
const MDB = require('prhone-mdb');
const db = new MDB(`${__dirname}/database.json`);
// Creates a new collection called `fruits` and create a new item within.
db.create('fruits', { name: 'apple', color: 'red' }).then(fruit => {
console.log('New fruit:', fruit);
// { id: 'c846482b-7dbe-4ee3-866c-e3cc06463cd2', name: 'apple', color: 'red' }
}, err => {
console.log('Error:', err); // If an error occurs.
});
// Create a new item in fruits collection.
db.create('fruits', { name: 'lemon', color: 'yellow' }).then(fruit => {
console.log('New fruit:', fruit);
// { id: '667ba0fd-dfc0-48aa-b8ab-17cd1fc5d48f', name: 'lemon', color: 'yellow' }
}, err => {
console.log('Error:', err);
});
db.getById('fruits', 'c846482b-7dbe-4ee3-866c-e3cc06463cd2').then(fruit => {
console.log('Fruit:', fruit);
// { id: 'c846482b-7dbe-4ee3-866c-e3cc06463cd2', name: 'apple', color: 'red' }
});
db.
updateById('fruits', 'c846482b-7dbe-4ee3-866c-e3cc06463cd2', { color: 'green' }).
then(fruit => {
console.log('Modified fruit:', fruit);
// { id: 'c846482b-7dbe-4ee3-866c-e3cc06463cd2', name: 'apple', color: 'green' }
});
db.getById('fruits', 'c846482b-7dbe-4ee3-866c-e3cc06463cd2').then(fruit => {
console.log('Fruit:', fruit);
// { id: 'c846482b-7dbe-4ee3-866c-e3cc06463cd2', name: 'apple', color: 'green' }
});API
db MDB(String filePath)
String filePaththe absolute path to a JSON file where to store the data.
Promise db.create(String tableName, Object item)
String tableNameThe table name. Even if it does not exist.Object itemThe new item to create in the table.
.then(function (Object item) {})
Object itemThe new item created.
Promise db.getById(String tableName, String itemId)
String tableNameThe table name.String itemIdThe item id.
.then(function (Object item) {})
Object itemThe item fetched.
Promise db.getAll(String tableName)
String tableNameThe table name.
.then(function (Array items) {})
Array itemsThe collection of all items. If table did not exist, it is an empty array.
Promise db.updateById(String tableName, String itemId, Object data)
String tableNameThe table name.String itemIdThe item id.Object dataThe new data of the item. This will be merged.
.then(function (Object item) {})
Object itemThe item updated.
Promise db.removeById(String tableName, String itemId, Object data)
String tableNameThe table name.String itemIdThe item id.
.then(function () {})
The promise will not give parameters.