var Titan = require('titan-node'); var gremlin = new Titan.Gremlin({ loglevel: 'OFF' }); var TinkerGraphFactory = gremlin.java.import('com.tinkerpop.blueprints.impls.tg.TinkerGraphFactory'); var graph = TinkerGraphFactory.createTinkerGraphSync(); var g = gremlin.wrap(graph); g.V('name', 'marko').next(function (err, v) { v.getProperty('name', function (err, value) { console.log(value); }); });
为什么当我使用Rexster时,我看不到这里要查询的数据库?
添加到@mscdex有效答案.这是Node.js中的JavaScript风格的Gremlin代码,它使用通过node-java的直接Java绑定.
Gremlin本身不是语言,而是DSL.它大部分时间都是用Groovy编写的(因为它缩短了Java语法),但它也存在于任何符合JVM的语言中(即Java,Groovy,Scala,通过rhino的JavaScript和现在使用Java 8的nashorn,以此命名)一些).在输入Gremlin查询/脚本时可以访问完整的Groovy / Java API,这使它成为一种图灵完备的“语言”.
我建议阅读http://gremlindocs.com/和http://sql2gremlin.com以获取有关Gremlin的有趣初学者资源. http://www.tinkerpop.com/docs/3.0.0.M1/将为您提供有关TinkerPop和Gremlin的详细信息(注意:链接将在官方v3.0文档发布时中断).
由于node-java的工作方式和公开Java方法(sync / async),你需要在这里使用回调以阻止事件循环.这是一个JavaScript问题,严格来说与Gremlin没有任何关系.
还有一些其他客户端没有直接绑定到JVM,但使用HTTP作为TinkerPop 2.x(https://github.com/gulthor/grex表示Node.js)或WebSocket表示TinkerPop 3.0(https://github.com/gulthor/gremlin-client表示Node.JS / browsers,它将成为官方TP3 JavaScript驱动程序).注意:TinkerPop成员/ lib作者在这里.