2016-06-28 3 views
3

私はneo4j3.0 bolt neo4j-driver構文が非常に困難であることを発見しています。私のセッションコードは実行されず、明らかにスキップされます。私は開発者のマニュアルの例を使って少しテストコードを作りましたが、それは同じことを驚かせてくれました。私はノードインスペクターを使ってコードを見て、それがちょうど "セッション"ブロックをスキップしたことを確かめました。明らかに私は何か間違っています...誰かがそれが何であるか教えてもらえますか?...コードは以下の通りです:.....コードは最初のconsole.logだけを表示して終了しました。neo4j-driverセッションが実行されていません

var neo4j = require('neo4j-driver').v1; 

var driver = neo4j.driver("bolt://localhost", neo4j.auth.basic("neo4j", "allin4k")); 
var session = driver.session(); 
console.log("start session"); 
session 
    .run("CREATE (a:Person {name:'Arthur', title:'King'})") 
    .then(function() 
    { 
    console.log("return from second session") 
    return session.run("MATCH (a:Person) WHERE a.name = 'Arthur' RETURN a.name AS name, a.title AS title") 

    }) 

    .then(function(result) { 
    console.log(result.records[0].get("title") + " " + result.records[0].get("name")); 
    session.close(); 
    driver.close(); 
    }) 

答えて

1

期待していることはわかりません。

セッションの結果を使用して、同じセッションで2番目のステートメントを実行すると同時にセッションを終了しますか?私はこのコードサンプルがneo4j3.0開発者マニュアルから来た示されているように...

var neo4j = require('neo4j-driver').v1; 

var driver = neo4j.driver("bolt://localhost", neo4j.auth.basic("neo4j", "allin4k")); 
var session = driver.session(); 
console.log("start session"); 
session 
    .run("CREATE (a:Person {name:'Arthur', title:'King'})") 
    .then(function() 
    { 
    console.log("return from second session") 
    session.run("MATCH (a:Person) WHERE a.name = 'Arthur' RETURN a.name AS name, a.title AS title").then(function(result) { 
     console.log(result.records[0].get("title") + " " + result.records[0].get("name")); 
     session.close(); 
     driver.close(); 
    }) 

    }) 
+0

あなたの第二thenは、2回目の呼び出しでなければなりません。私の今後の研究では、ネストされたセッション(第2のセッション)の問題を指摘しています。これは、最近の質問 "Neo4j BOLTクエリが常に一貫して機能するとは限りません"と関連しています。 – MichaelE

+0

起こっているのは、コードの実行中にノードの作成が遅れることです。 2番目のセッションを除いてコードは常に完了し、データベースをチェックするとノードが作成されます。私はブラウザの接続を開いていた場合、ノードを切断して再接続するまではノードが表示されませんでした。これはnodejsのためにも可能です....この動作にもう少し光を当てることができます....ありがとう – MichaelE

関連する問題