Neo4j的节点模块
我的应用程序有节点JS。 我试图连接NodeJS和Neo4j在一起。 有人可以告诉我,如何连接两者? 我的查询需要在Neo4j上使用标签。 请让我知道我应该在Node Js中使用哪个模块来实现这个目标?我已经花了很多时间,而且还没有运气。
最后,我检查了至less有4个受欢迎和积极开发的node.js模块(按星号sorting):
- https://github.com/thingdom/node-neo4j(npm install neo4j)
- https://github.com/bretcope/neo4j-js(npm install neo4j-js)
- https://github.com/philippkueng/node-neo4j(npm install node-neo4j)
- https://github.com/brikteknologier/seraph(npm安装seraph)
他们都支持Cypher端点,这是我列入的要求。 从列表中脱颖而出的一个关键特性是philippkueng / node-neo4j是唯一具有事务API支持的特性。 另一个是要求节点标签的能力,只有seraph和philippkueng / node-neo4j才支持。 (通常你可以避免需要询问一个节点的标签,如果你让你的Cypher查询显式地询问标签,这样可以避免来回请求)
另一方面,实施一些HTTP请求并不难,直接访问Cypher或Transactional Cypher端点,按照您认为适合您的应用的方式来处理结果。
我最近看到的另一个很酷的新开发是https://github.com/brian-gates/cypher-stream ,它发出了来自Cypher的一串结果,实现了stream式JSONparsing,这是另一个面向性能的function上面列出了四个。
编辑:03/2016有一个新的官方JS驱动程序用于新的螺栓协议(二进制)。 对于新的发展,这一定是应该考虑的。 Bolt计划在Neo4j 3.0发布。 https://github.com/neo4j/neo4j-javascript-driver
在2016年9月发布的检查koa-neo4j
框架,它使用官方的neo4j驱动程序在引擎盖下。 人们可以在最新的稳定的neo4j(本文写作时的3.0.3)之上编写本地Cypher(作为.cyp
文件),其中包括查询标签。
https://github.com/assister-ai/koa-neo4j
https://github.com/assister-ai/koa-neo4j-starter-kit
在启用Neo4j的应用程序中,直接从客户端进行查询可能不是最好的select:
- 数据库暴露给客户端,除非有明确的安全机制; 可以通过
View page source
数据库的内部- 没有一个服务器来统治他们 ,查询是string,分散在不同的客户端(networking,手机等)
- 第三方开发者可能不熟悉Cypher
koa-neo4j
解决了所有上述问题:
- 作为客户端和数据库之间的中间层
- 以基于文件的项目的forms为您的服务器的逻辑提供结构; 最后是Cypher的家! 然后,所有的客户端都可以和这个服务器的一个实例通信
- 将Cypher文件转换为REST路由,这是开发人员熟悉的跨平台Web标准,它是在广泛适用的koa服务器之上进行的,适合进一步定制