2016-04-03 12 views
0

Node.jsからNeo4jにクエリを送信しますが、コールバックは表示されません。クエリは正しく実行されますが、コールバックの情報は表示されず、コンソールにログされません。Node.jsからNeo4jを照会するときにコールバックが表示されない

私はnode.jsがデータが来る前にconsole.logを実行すると思いますが、解決方法はわかりません。

のNode.js:

// Load Modules 
var neo4j = require('neo4j'); 

// Database Connection 
var db = new neo4j.GraphDatabase("http://neo4j:[email protected]:7474/"); 

// Inizialize Query 
var query = "CREATE (:Song {name:'James'})"; 

db.cypher(query, function(err, node){ 
    if(err) throw err; 

    // Output node properties. 
    console.log(node.data); 

    // Output node id. 
    console.log(node._id); 
}); 

出力:私が言ったように

C:\Users\RRamos\Documents\Projects\test-neo4j>node index.js 
[] 
undefined 

が、私はそれをチェックし、それが正しく作成されています。

+0

ノードだけをログに記録するとどうなりますか? – JordanHendrix

+0

データベースを作成してQUERYしないときは、どのように戻す必要がありますか? – JordanHendrix

答えて

0

あなたのコード内の多くの問題があります。

  1. (それがどんな結果行が含まれることはありませんので)、クエリ応答は常に空の配列になりますので、あなたのサイファーのクエリがRETURN句を持っていません。

  2. あなたのコールバックは、応答のデータ構造が間違っていると予想しています。

このコードを試してください。エラー(存在する場合)と応答をダンプし、応答の実際のデータ構造を見ることができます。また、forループを使用してレスポンスのデータ行を繰り返し処理し、各ノードのプロパティとネイティブIDをsとして出力します。あなたのケースでは、たいていの結果行は1つしかないので、ループは厳密には必要ではありませんが、一般的には複数の行があります。

// Load Modules 
var neo4j = require('neo4j'); 

// Database Connection 
var db = new neo4j.GraphDatabase("http://neo4j:[email protected]:7474/"); 

// Inizialize Query 
var query = "MATCH (s:Song {name:'James'}) RETURN s"; 

db.cypher(query, function(err, res){ 

    // Dump out the err and response, to see the data structure. 
    console.log("err: %j, res: %j", err, res); 

    if(err) throw err; 

    // Print out the data for each row in the response. 
    for (var i = 0; i < res.length; i++) { 
     var s = res[i].s; 
     // Output node properties. 
     console.log(s.properties); 

     // Output node id. 
     console.log(s._id); 
    } 


}); 
関連する問題