VQRest allows with one line of code create mongoose models and restful API.
const vqrestApp = require('vqrest')('<mongodb-url>');
Creates a mongoose scheme for mongodb and sets up restful paths for common operations:
GET /options.base/resourceName
GET /options.base/:itemId
POST /options.base/resourceName
PUT /options.base/resourceName/:itemId
DELETE /options.base/resourceName/:itemId
vqrestApp.create('user', {
firstName: String,
lastName: String
}, {
base: 'api',
getItem: {
// prehook will always run in the very beginning
prehook: (req, res) => new Promise(resolve => {
if (req.user) {
return resolve();
}
return res.status(401).send('Log in');
});
// overwrites the default behaviour
customFn: (Model, params, query, body, user) => new Promise((resolve, reject) => {
}
}
deleteItem: {
soft: true
}
});
Copies corresponding fields from data to obj
const obj = { field1: 1, field2: 2 };
vqrestApp.utils.updateObject(obj, { field1: 2, field3: 3 });
console.log(obj);
// { { field1: 2, field2: 2, field3: 3 } }