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.
- Include the scripts to your application (see src/index.html example file);
- Import and compile DemoInstaller.xml to Caché (or import from sources, src directory);
- A new web application named "CJS" will be created during compilation;
- Now, serve the src/client directory and check the demo. Demo defaults to localhost and port number 57772, see test.js.
// .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); }); }); // executing linq-like queries cache.School2015.Participant .query() .where("Carma < 100 OR Carma > 140") .where("$id > 10") .orderByDesc("Carma") .orderBy("Name") .exec(function(res) { console.table(res); }); });