如何获取Neo4j节点的属性

时间:2015-08-11 10:31:56

标签: javascript node.js neo4j

我正在与neo4j中的Nodejs建立连接,以获取ServiceConsumer节点的属性。但不确定,怎么做。这是我连接到neo4j的代码。假设ServiceConsumer有一些属性,如citystatenameuserId,我必须检索ServiceConsumer的名称。我从前端获取userId并在此userId的基础上查询neo4j数据库以获取节点信息。我如何获得ServiceConsumer的名称?任何帮助将不胜感激。

var user = this.userId;
    var request = require("request");
    var host = 'localhost';
        port = 7474;
    var httpurlforconnection ='http://' + host + ':' + port + '/db/data/transaction/commit';


    /*Let’s define a function which fires the cypher query.*/

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

    // Let’s fire some queries below 

    runCypherQuery(
      'MATCH (n:ServiceConsumer {userId : {} }) RETURN n', {
        userId: 'user',
      }, function (err, resp) {
        if (err) {
          console.log(err);
        } else {
          console.log(resp);
        }
      }
    );

2 个答案:

答案 0 :(得分:1)

查看How to return all properties of a node with their name and their value using Cypher

您可以使用nodejs执行相同的操作,简单的POST可以将整个节点返回给您,然后使用JSON将其强制转换为对象。

顺便说一下,你的代码运行正常,你可以简单地选择应该包含结果JSON的“resp”对象。

答案 1 :(得分:0)

我看到的一个显而易见的事情是你没有指定userId参数。你Cypher看起来应该是这样的:

MATCH (n:ServiceConsumer {userId: {user_id}}) RETURN n

这有帮助吗?