objectum-ee
v3.8.49
Published
Objectum Enterprise Edition - Javascript app platform
Downloads
60
Maintainers
Readme
Objectum Enterprise Edition - javascript app platform
Deprecated.
Русская версия
Objectum platform makes it easy to create realtime single page applications that run in both Node.js and browsers.
Objectum includes a powerful user interface constructor called Visual Objectum that creates grids, tree grids, forms, etc. Automatically generates source code for CRUD (create, read, update, delete) functions.
Learn by Example project "To-Do list"
Complete project https://github.com/objectum/todo
Create directories:
mkdir /opt/objectum/node
mkdir /opt/objectum/projects
mkdir /opt/objectum/projects/todo
mkdir /opt/objectum/projects/todo/bin
Install:
cd /opt/objectum/node
npm install objectum-ee
You must have installed PostgreSQL 9.x (datestyle = dmy)
Add project configuration (postgres password: 12345):
cat > /opt/objectum/projects/todo/config.json
{
"rootDir": "/opt/objectum/projects/todo",
"adminPassword": "D033E22AE348AEB5660FC2140AEC35850C4DA997",
"database": "postgres",
"host": "localhost",
"port": 5432,
"db": "todo",
"dbUser": "todo",
"dbPassword": "1",
"dbaUser": "postgres",
"dbaPassword": "12345",
"dbEngine": {
"enabled": 1
},
"visualObjectum": {
"menuConstructor": 1,
"accessConstructor": 1,
"projectConstructor": 1
}
}
Add platform configuration:
cat > /opt/objectum/node/config.js
module.exports = {
"rootDir": "/opt/objectum/node",
"projectsDir": "/opt/objectum/projects",
"port": 8100,
"storages": {
"todo": require ("/opt/objectum/projects/todo/config.json")
}
}
Add script:
cat > /opt/objectum/node/objectum.js
var objectum = require ("objectum-ee");
var config = require ("./config");
module.exports = new objectum.Objectum (config);
Add script:
cat > /opt/objectum/node/index.js
var objectum = require ("objectum-ee");
objectum.start (require ("./config"));
Add script:
cat > /opt/objectum/projects/todo/bin/init.js
var $o = require ("/opt/objectum/node/objectum");
$o.db.execute ({
code: "todo",
fn: "init",
name: "To-Do list",
locale: "en" // en, ru
});
Init project folder:
cd /opt/objectum/projects/todo/bin
node init.js
Prepare tablespace folder:
mkdir /opt/objectum/projects/todo/db
chown postgres:postgres /opt/objectum/projects/todo/db
Add script:
cat > /opt/objectum/projects/todo/bin/create.js
var $o = require ("/opt/objectum/node/objectum");
$o.db.execute ({
code: "todo",
fn: "create",
path: "/opt/objectum/projects/todo/db"
});
Create storage:
cd /opt/objectum/projects/todo/bin
node create.js
Add script:
cat > /opt/objectum/projects/todo/bin/import.js
var $o = require ("/opt/objectum/node/objectum");
$o.db.execute ({
code: "todo",
fn: "import",
file: "/opt/objectum/projects/todo/schema/schema-app.js" // parent storage
});
Import storage structure:
cd /opt/objectum/projects/todo/bin
node import.js
Start platform:
cd /opt/objectum/node
node index.js:
Start platform with forever:
forever start -a -l /opt/objectum/node/objectum.log -o /dev/null -e /opt/objectum/node/objectum-error.log --sourceDir /opt/objectum/node index.js
Stop platform with forever:
forever stop index.js
Open URL: http://localhost:8100/projects/todo/
Login: admin
Password: admin
Add script:
cat > /opt/objectum/projects/todo/bin/remove.js
var $o = require ("/opt/objectum/node/objectum");
$o.db.execute ({
code: "todo",
fn: "remove"
});
You can remove storage (drop tablespace, role, user from PostgreSQL):
cd /opt/objectum/projects/todo/bin
node remove.js
Export storage:
cd /opt/objectum/projects/todo/bin
node export.js
Add script:
cat > /opt/objectum/projects/todo_my/bin/import.js
var $o = require ("/opt/objectum/node/objectum");
$o.db.execute ({
code: "todo_my",
fn: "import",
file: "/opt/objectum/projects/todo/schema/schema-todo.js" // parent storage
});
Import your storage "todo" to new created storage "todo_my":
cd /opt/objectum/projects/todo_my/bin
node import.js
Just export "todo" and import "todo" to "todo_my" for update to new version of storage "todo". Stop platform before import storage.
startTransaction - start transaction. Only one transaction for one session allowed.
commitTransaction - commit transaction.
rollbackTransaction - rollback transaction.
createObject - create object
getObject - get object
set - set attribute value
sync - save object changes to storage
remove - remove object
execute - execute SQL query (only SELECT)
storage.commitTransaction (function (err) {
});
storage.rollbackTransaction (function (err) {
});
storage.createObject ("class", function (err, object) {
var id = object.get ("id");
});
storage.getObject (id, function (err, object) {
object.set ("text", "Changed text");
object.sync (function (err) {
});
});
object.remove ();
object.sync (function (err) {
});
storage.execute ({
asArray: true,
select: [
{"a": "id"}, "id",
{"a": "name"}, "name",
{"b": "name"}, "status"
],
from: [
{"a": "task"},
"left-join", {"b": "spr.status"}, "on", [{"a": "status"}, "=", {"b": "id"}]
],
where: [
{"a": "name"}, "like", "Buy%", "and", {"a": "id"}, "in", [1000, 1002, 1003, 1004, 1005].join (".,.").split (".")
],
order: [
{"a": "name"}
]
}, function (err, recs) {
_.each (recs, function (rec) {
console.log (rec.id, rec.name, rec.status);
});
});
Change index.js for start in cluster mode:
var objectum = require ("objectum-ee");
objectum.startCluster (require ("./config"));
Cluster architecture:
Author
Dmitriy Samortsev
- http://github.com/objectum
Copyright and license
GPLv3