Cargojs
Cargojs is an API for OrientDB operations build on top of Express.
Cargojs support few amount of operations including BREAD at the moment and build using Orientjs as main driver.
- Browse
- Read
- Edit
- Add
- Delete
- Delete-All
- Count
- Query
- Map
- By RID
Usage
Installation
Install via npm.
Configuring the client.
var Cargo = require('cargojs');
var configuration = {
host: 'localhost',
port: 2424,
user: 'root',
password: 'root',
database: 'sample'
};
app.use(Cargo.express(configuration, {
sync: Cargo.sync.CREATEOREXISTS,
define: function (db, models) {
models.User = db.define("User", {
'name': Cargo.types.STRING,
'age': Cargo.types.INTEGER
});
}
}));
Using Cargojs operations
+ Browse | Return an array of records
exports.browseUsers = function(req, res) {
req.models.user.browse({
'status': 'active'
}).then(function(users)) {
console.log(users);
},
function(error) {
console.error(error)
});
};
+ READ | Return a single record
exports.readUser = function(req, res) {
req.models.user.read({
'status': 'active'
}).then(function(user)) {
console.log(user);
},
function(error) {
console.error(error)
});
};
+ Edit | Update reocrds
exports.editUser = function(req, res) {
req.models.user.set({
'name': 'Ryan'
}).edit({
'status': 'active'
}).then(function(user)) {
console.log(user);
},
function(error) {
console.error(error)
});
};
+ Add | Add a reocrd
exports.addUser = function(req, res) {
req.models.user.add({
'name': 'Ryan',
'lastName': 'Cooper',
'status': 'active'
}).then(function(user)) {
console.log(user);
},
function(error) {
console.error(error);
});
};
+ Delete | Delete a reocrd
exports.deleteUser = function(req, res) {
req.models.user.delete({
'name': 'Ryan'
}).then(function(user)) {
console.log(user);
},
function(error) {
console.error(error);
});
};
+ Delete-All | Delete all reocrds
exports.deleteAllUser = function(req, res) {
req.models.user.deleteAll({
'name': 'Ryan'
}).then(function(user)) {
console.log(user);
},
function(error) {
console.error(error);
});
};
+ Count | Count reocrds in class
exports.countUsers = function(req, res) {
req.models.user.count().then(function(total)) {
console.log(total);
},
function(error) {
console.error(error);
});
};
Map Links
+ Add | Add link to record
exports.linkUsers = function(req, res) {
var client = req.cargo.RID('#1:5');
var link = req.cargo.RID('#2:3');
req.models.user.addList(client).map({
'project': link
}).then(function(updatedCount)) {
console.log(updatedCount);
},
function(error) {
console.error(error);
});
};
+ Remove | Remove link to record
exports.linkUsers = function(req, res) {
var client = req.cargo.RID('#1:5');
var link = req.cargo.RID('#2:3');
req.models.user.removeList(client).map({
'project': link
}).then(function(updatedCount)) {
console.log(updatedCount);
},
function(error) {
console.error(error);
});
};
+ Query | Custom query
exports.queryUsers = function(req, res) {
var sql = 'SELECT * FROM User'
req.models.user.query(sql).then(function(result)) {
console.log(result);
},
function(error) {
console.error(error);
});
};
+ Select | Select columns
exports.selectColumnsUsers = function(req, res) {
req.models.user.select('name, lastName').browse({
'status': 'active'
}).then(function(users)) {
console.log(users);
},
function(error) {
console.error(error)
});
};
+ Limit | Limit records (only works with browse right now)
exports.limitUsers = function(req, res) {
req.models.user.limit(5).browse({
'status': 'active'
}).then(function(users)) {
console.log(users);
},
function(error) {
console.error(error)
});
};
Let's work with RIDs (By RID)
+ Get | Get a record
exports.getUserbyRID = function(req, res) {
req.record.get('#12:1').then(function(user)) {
console.log(user);
},
function(error) {
console.error(error)
});
};
+ Update | Update a record
exports.updateUserbyRID = function(req, res) {
req.record.RID('#12:1').update({
name: 'Ryan'
}).then(function(use)) {
console.log(user);
},
function(error) {
console.error(error)
});
};
+ Delete | Delete a record
exports.deleteUserbyRID = function(req, res) {
req.record.delete('#12:1').then(function(user)) {
console.log(user);
},
function(error) {
console.error(error)
});
};
Version
0.5.6
Development
Want to contribute? Great! Pull-requests are welcome
Todo's
- Remove Orientjs and be standalone.
- Add more operations like Create classes | Add properties etc...
- Custom operations.
License
MIT