基于nodejs搭建neo4j后端服务

本文介绍了如何使用Node.js的Koa2框架和Neo4j数据库搭建后端服务。内容包括连接Neo4j的两种npm模块(neo4j-driver和node-neo4j)的比较,以及使用这些模块搭建后端服务的步骤。此外,还讲解了前端请求的实现,包括jQuery、axios和原生JS。最后展示了查询结果,并总结了整个过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述

这次使用koa2框架来搭建一个基于node的图数据库后端服务

二、连接Neo4j数据库

目前有两种常用的npm模块可用(点击跳转到官方文档页面处)

  1. neo4j-driver:这个是Neo4j官方推荐库,也一直在更新,推荐
  2. node-neo4j :已经很久没更新了,估计已经废弃,但是相比上一个更好上手,适合搭建简单服务,推荐不熟悉JS语法的使用

三、搭建后端服务

根据以上两种方法,我分别构建了两套后端服务。

首先对两种npm模块做对比:

  • neo4j-driver ,Neo4j官方库,文档也一直在更新,而ECMA标准也是每年更新一次,所以neo4j-driver在使用上也支持很多ES的新特性;同时在使用上更加灵活一些,也支持多种不同的方式,更适合复杂的场景。【推荐
  • node-neo4j已经五年没更新了,该模块通过回调函数实现数据的读取,适合处理逻辑简单的请求,使用上来说不一定是最优的选择;

以下是我自己个人的Demo,仅供参考,如果想入门的话推荐先参考官方文档的入门案例来做,我演示了多段cypher查询的例子。

多段cypher查询应用场景:比如在查询时根据查询关键字查询到对应企业,再根据第一个查询的结果找出与查询企业相关联的其他实体作为返回结果

1. 安装所需npm模块

安装以下两个neo4j数据库连接模块的其中一个,以及koa框架所需依赖和中间件(路由、json解析、跨域、日志等)

npm install node-neo4j
npm install neo4j-driver
npm install koa koa-bodyparser koa-json koa-router koa2-cors koa-logger koa-onerror

如果不想自己一步步搭建,可以使用koa脚手架——koa-generator来快速搭建服务

cnpm install -g koa-generator

全局安装脚手架工具后,输入命令创建koa项目:

koa2 // 在当前文件夹创建项目
koa2 项目名称 // 在当前路径创建对应名称的项目文件夹

2. node-neo4j连接Neo4j

node-neo4j.js内容,在koa2的index.js中作为模块导入

// node-neo4j.js
var neo4j = require('node-neo4j');
db = new neo4j('http://用户名:密码@localhost:7474');

const getJson =  async (query) => {
   
  return new Promise((resolve, reject) => {
   
    // 根查询语句,查询对应企业
    let cql_root = `MATCH (n:Enterprise)
        where n.name=~'.*${
     query}.*'RETURN n LIMIT 1`

    const json = {
   }

    // 根查询语句查询到的节点信息
    db.cypherQuery(cql_root, function (err, result) {
   
      if (err){
   
        throw err;
      }
      json.root = result.data[0];
      let cql_name = json.root.name // 拿到第一个查询的结果
      // 自己的查询语句放在这里,根据结果自行拓展你想查询的东西
      let cql_child = `MATCH p=(n1:Enterprise{name: '${
     cql_name}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值