我正在与neo4j
中的Nodejs
建立连接,以获取ServiceConsumer
节点的属性。但不确定,怎么做。这是我连接到neo4j的代码。假设ServiceConsumer有一些属性,如city
,state
,name
,userId
,我必须检索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);
}
}
);
答案 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
这有帮助吗?