2015-01-05 33 views
1

我試圖從nodejs對neo4j數據庫運行查詢。這裏是我app.get內的代碼中的NodeJS:在nodejs中運行Neo4j查詢返回「undefined」

var query = 'match (t {name:"Tom Hanks"}) return t'; 
    var params={limit: 10}; 
    cypher(query,params,cb); 

這裏是暗號函數定義爲執行查詢:

function cypher(query,params,cb) { 
     request.post({uri:txUrl, 
     json:{statements:[{statement:query,parameters:params}]}}, 
     function(err,res) { cb(err,res.body);}); 
    } 

最後,這是CB函數定義:

var cb = function(err,data) { 
    console.log(JSON.stringify(data)); 
}; 

我設置的數據庫路徑,如下所示:

var txUrl = 'http://localhost:7474/db/data'; 

在節點js中運行代碼之後。我只是在控制檯中看到「未定義」的錯誤。這個線索很難調試。在此之前,我得到了類似的形式錯誤「變量x未定義」。但現在,我被卡住了。有沒有人有任何想法找到問題的根源?

回答

0

你應該輸出err參數,那麼你也應該看到錯誤信息。 嘗試使用javascript/node加快速度,並首先使用約定,這將爲您節省這種誤解。

您的網址是錯誤的,它必須是:

var txUrl = 'http://localhost:7474/db/data/transaction/commit'; 

而且您的PARAMS不使用任何地方。

你應該在你的對手使用標籤,像:Person:Actor

我想你會過得更好使用Javascript的驅動程序,請參見http://neo4j.com/developer/javascript

+0

謝謝邁克爾。我相應地修改了URL。現在使用錯誤參數,我得到以下錯誤:[Error:connect ECONNREFUSED] code:'ECONNREFUSED',errno:'ECONNREFUSED', syscall:'connect'}我想我應該去的驅動程序之一你介紹了。你建議去node-neo4j嗎? – Mohammadreza

+0

似乎我的Neo4J服務因爲某種原因被停止了。我開始它,現在它完美地工作。但是,我認爲用駕駛員來做這些事情會更好。那麼,你推薦哪個驅動程序? node-neo4j或neo4j-js? – Mohammadreza

+0

我推薦node-neo4j v2 –