2015-08-11 7 views
4

Я делаю подключение к neo4j в Nodejs, чтобы получить атрибут узла ServiceConsumer. Но не уверен, как это сделать. вот мой код, который подключается к neo4j. Предположим, что ServiceConsumer имеет некоторые атрибуты, такие как city, state, name, userId и мне нужно получить имя ServiceConsumer. Я получаю userId от внешнего интерфейса и на основании этого userId, запрашивающего базу данных neo4j, чтобы получить информацию о узле. Как получить имя ServiceConsumer? Любая помощь будет оценена.Как получить атрибуты узла Neo4j

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); 
     } 
     } 
    ); 

ответ

0

Одна очевидная вещь, которую я вижу, заключается в том, что вы не указываете параметр userId. Вы, Cypher, должны выглядеть примерно так:

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

Помогло ли это?

+0

Фактически, я передаю параметр userId во время выполнения, я сохранил его в переменной «пользователь». userId не будет жестко закодирован. –

+0

Да, я вижу, что вы передаете параметр 'userId', но вы не указали, куда он попал в строку запроса. Просто положить пустые скобки, такие как '{}' ничего не делает, я не думаю, что –

1

Посмотрите на How to return all properties of a node with their name and their value using Cypher

Вы можете сделать то же самое с помощью nodejs, просто POST может возвращать весь узел к вам, а затем просто бросить его на объект с помощью JSON.

Кстати, ваш код работает нормально, вы можете просто взять объект «resp», который должен содержать результат JSON.

+0

спасибо за ваш ответ, немного занят ... я попробую его позже. –

Смежные вопросы