2015-10-05 58 views
2

按照the Neo4j REST API transactional page上提出的語法,我嘗試運行請求"CREATE (node:{group} { name: {name}}) RETURN node", { group: "Group", name: "Name"}無法使用Neo4j REST API動態設置節點標籤

是一個動態變量的使用:{group}導致錯誤:

"Neo.ClientError.Statement.InvalidSyntax","message":"Invalid input '{': expected whitespace or a label name

並不是我的這個飛行員操作失誤,在Neo4j的查詢分析器中的錯誤,或東西,不能做?

這裏是我的Nodej.s代碼:

var request = require("request") 
var host = 'localhost' 
    , port = 7474 
    , user = "neo4j" 
    , pass = "1234" 
var uri = 'http://' + user + ":" + pass + "@" + host + ':' + port + '/db/data/transaction/commit' 

function runCypherQuery(query, params, callback) { 
    request.post({ 
     uri: uri, 
     json: {statements: [{statement: query, parameters: params}]} 
    }, 
    function (err, res, body) { 
     callback(err, body) 
    }) 
} 

runCypherQuery(
    "CREATE (node:{group} { name: {name}}) RETURN node" 
, { group: "Group" 
    , name: "Name" 
    } 
, function (err, resp) { 
    if (err) { 
     console.log(err) 
    } else { 
     console.log(JSON.stringify(resp)) 
    } 
    } 
) 
+0

在Cypher支架不能參數節點標籤。你將不得不建立字符串。 –

+0

很高興知道。謝謝。 –

回答

3

節點標籤不能在Cypher中參數化。

嘗試更新查詢標籤作爲一個字符串,而不是傳遞一個參數:

"CREATE (node:" + group + " {name: {name}}) RETURN node" 
1

不幸的是,Cypher支架不支持參數的標籤名稱。