ObjectModel is a tiny package that help you use any object as a Model.
Add ObjectModel to your project with the following command:
npm install object-model
Include it when you needed:
var OM = require('object-model');
Let's say, we want to define carModel
, as a model to define cars
:
var carModel = {
make: '',
year: '',
name: '',
mpg: ''
};
Create the model from carModel
object with:
OM.createModel(carModel);
From now on, you can create any data object with carModel
model:
var rav4 = carModel.init('toyota', 2000, 'RAV4', 27);
console.log(rav4);
or if you want to write more meaningful code:
var crv = carModel.init({
make: 'honda',
year: 2005,
name: 'CRV'
});
console.log(crv);
You can skip some key, it will automatically takes the default value from model.
For example, we use ObjectModel with MongoDB in a simple To Do app.
Firstly, we define our task
model:
var taskModel = {
task: '',
timeCreated: 0,
done: false
}
Then we create a model from task
object with ObjectManager:
OM.createModel(taskModel);
Now the taskModel
is available to use. Let's insert a new task to MongoDB:
db.collection('tasks').insertOne(
taskModel.init('Pay gas bill', Date.now()),
function(err, result) {
if (err) console.error(err);
else console.log(result);
}
);
Or insert many document at a time:
db.collection('tasks').insertMany(
[
taskModel.init('Pay gas bill', Date.now()),
taskModel.init('Pay phone bill', Date.now()),
taskModel.init('Pay car loan', Date.now()),
],
function(err, result) {
if (err) console.error(err);
else console.log(result);
}
);
The project is available on Github here: https://github.com/huytd/object-model
I know my code isn't cool yet, there are many potential issues with such a logic. Please help me improve it if you can. Feel free to create Pull Request or do code review for other PR.
This project published under MIT License, please refer LICENSE.md
for more detail.