如何从Orientjs执行Orientdb服务器端功能?

时间:2015-06-27 20:21:46

标签: javascript orientdb

我正在使用Orientjs从nodejs脚本访问Orientdb数据库,但服务器端功能不会影响数据库。

服务器端脚本: 此Javascript函数addTxt()接受参数authortext

var db = orient.getGraph();
db.command('sql','insert into Message (author, text) VALUES ("'+author+'", "'+text+'")');
return "1";

查询:此功能已在Orient Studio中测试,以下查询有效:

SELECT addTxt("Testuser","foo")

Nodejs / Orientjs:当使用Orientjs从nodejs脚本调用此函数时,它只返回

[ { '@type': 'd', addTxt: '1', '@rid': { cluster: -2, position: 1 } } ]

并且数据库保持不变。

我试过了:

//some code

var OrientDB = require('orientjs');    
var server = OrientDB({
    host: 'localhost',
    port: 2424,
});

var db = server.use({
    name: 'database',
    username: 'admin',
    password: 'pass'

db.query('SELECT addTxt(:arg1, :arg2)', {
    params: {arg1:"Testuser",arg2:"foo"}
}).then(function (response){
    console.log(response);
});

来自Orientjs的其他查询有效。

我做错了什么?还有另一种方法可以调用服务器端功能吗?

1 个答案:

答案 0 :(得分:1)

你明确地返回“1”

返回

是对的
[ { '@type': 'd', addTxt: '1', '@rid': { cluster: -2, position: 1 } } ]

尝试直接显示函数中的提交

db.commit()