JavaScript Object Data Model - easiest workflow with InterSystems Caché objects from client JavaScript or NodeJS.
This project is a result of InterSystems Innovations School hackathon which had its place 2015, by the team of Anton Gnibeda, Irene Mychailova and Nikita Savchenko. The code in this repository is provided "as-is" and is not ready for potential production use. For any further info, questions or requests please, submit an issue.
// .connect("Server address and port", "Namespace", [Any Packages/classes], callback())
// Note: all the callbacks represented here are asynchronous and may be triggered in any order.
cjs.connector.connect("http://localhost:57772", "USER", ["School2015"], function (cache) {
// creating a new object
var p = new cache.School2015.Participant();
p.Name = "Anton";
p.Surname = "Gnibeda";
p.$save(function(obj) {
console.log("Participant with name " + obj.name + " saved!");
});
// opening existing object
cache.School2015.Group.openById(1, function (group) {
console.log("Points: " + group.Points);
});
// executing class method
cache.School2015.Group.AddPoints(1, 1);
// executing instance method
cache.School2015.Group.openById(1, function (group) {
group.PrintInfo(function (res) {
console.log(res);
});
});
<span class="pl-c">// executing linq-like queries</span>
cache.School2015.Participant
.query()
.where("Carma < 100 OR Carma > 140")
.where("$id > 10")
.orderByDesc("Carma")
.orderBy("Name")
.exec(function(res) {
console.table(res);
});
});
Initial Release