2014-08-28 7 views
3

저는 Java, Gremlin, Nodejs, Tickerpop, Maven을 처음 접했고 그 밖의 모든 것에 관해서는 새로운 것 같습니다. 이 코드는 무엇을합니까? 특히 'java.import'는 무엇을하고 있습니까? 자바 클래스입니까? 이게 타이탄과 무슨 상관이 있죠?이 모든 노드에 당혹스러워 함 -> Titan stuff

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를 사용하면 데이터베이스가 여기에서 쿼리되는 것을 볼 수 없습니까?

+0

아하 ... 그래서 그 수업. http://grepcode.com/file/repo1.maven.org/maven2/com.tinkerpop.blueprints/blueprints-core/2.0.0/com/tinkerpop/blueprints/impls/tg/TinkerGraphFactory.java#TinkerGraphFactory.createTinkerGraph% 28 % 29 –

+0

그래서 Java를 사용하는 API 주위에 자바 스크립트 래퍼가 있습니다. –

답변

6

@mscdex 정답에 추가하십시오.

이것은 node-java를 통해 직접 Java 바인딩을 사용하여 Node.js의 JavaScript화된 Gremlin 코드입니다.

그렘린은 언어 그 자체가 아니라 DSL입니다. Groovy로 작성된 대부분의 시간 (Java에 비해 구문이 짧기 때문에)이지만 JVM 호환 언어 (예 : Java, Groovy, Scala, Java를 사용한 JavaScript 및 Java 8의 nashorn)에도 존재합니다. 약간). Gremlin 쿼리/스크립트를 입력 할 때 전체 Groovy/Java API에 액세스 할 수 있으므로 튜링이 완성 된 "언어"가됩니다.

Gremlin의 흥미로운 초보자 용 리소스는 http://gremlindocs.com/http://sql2gremlin.com으로 시작하는 것이 좋습니다. http://www.tinkerpop.com/docs/3.0.0.M1/은 TinkerPop 및 Gremlin에 대한 자세한 정보를 제공합니다 (참고 : 공식 v3.0 문서가 릴리스됨에 따라 링크가 끊어집니다).

node-java가 작동하고 Java 메소드 (sync/async)를 노출하는 방식 때문에 이벤트 루프를 차단하지 않으려면 여기에서 콜백을 사용해야합니다. 이것은 자바 스크립트와 관련이 있으며 Gremlin과는 아무런 관련이 없습니다.

이 직접 JVM에 결합하지만 TinkerPop에 대한 TinkerPop 2.x에서 (Node.js를위한 https://github.com/gulthor/grex) 또는 웹 소켓을 위해 HTTP를 사용하지 않는 몇 가지 다른 클라이언트 3.0 (https://github.com/gulthor/gremlin-client, Node.js를위한/브라우저 것 공식 TP3 자바 스크립트 드라이버가 됨). 참고 : 여기 TinkerPop 회원/lib 저자.

1

gremlin (titan-node의 종속성)은 노드와 Java 사이에 브리지를 제공하는 모듈 인 node-java을 사용합니다. node-java, 당신은 자바 클래스를 가져 Java 데이터 유형을 인스턴스화 할 수 있습니다 등

그래서 당신이 Gremlin 자바/JVM 일이기 때문에 특정 자바 클래스를 가져 오는 것입니다 node-java을보고있다.

+0

좋아요. Java 또는 Groovy를 사용하는 코드입니까? 어떤 것을 알 수 있습니까? –

+0

그리고 머신에서 Java 클래스는 어디에 저장됩니까? –

+0

내 추측은 Java 일 것이며 명시 적으로 ['java.classpath'] (https://github.com/joeferner/node-java#javaClasspath)를 사용하지 않았거나 CLASSPATH 환경 변수에서 찾은 것입니다. – mscdex