当前位置: 首页 > 知识库问答 >
问题:

使用node js在neo4j中创建节点时出错

钱志
2023-03-14

我的代码!!

var neo4j = require('neo4j-driver').v1;
var express = require('express');
var logger = require('morgan');
var path = require('path');
var bodyParser =require('body-parser');
var app=express();
app.set('views',path.join(__dirname, 'views'));
app.set('view engine','ejs');
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(express.static(path.join(__dirname,'public')));
var driver = neo4j.driver("bolt://localhost:7687", neo4j.auth.basic("Novasys", "123456"));
var session = driver.session();
app.get('/', function(req,res){
  session
  .run('MATCH (n:Movie) RETURN n LIMIT 30')
  .then(function(result){
    var moviearr = [];
    result.records.forEach(function(record){
      moviearr.push({enter code here
        id: record._fields[0].identity.low,
        title: record._fields[0].properties.title,
        released: record._fields[0].properties.released
      });
    });

    session
    .run('MATCH (n:Person) RETURN n LIMIT 25')
    .then(function(result2){
      var personArr = [];
      result2.records.forEach(function(record){
      personArr.push({
        id: record._fields[0].identity.low,
        name: record._fields[0].properties.name
      });
      });
      res.render('index', {
      movies: moviearr,
      persons: personArr
    });
    })
    .catch(function(err){
      console.log(err);
    });
  })
  .catch(function(err){
    console.log(err);
  });
});

app.post('/movie/add',function(req,res,next){
      var title = req.body.title;
      var released = req.body.released;

      session
      .run('CREATE(n:Movie {title:{titleParam}, released:{releasedParam}}) RETURN n.title',{titleParam:title, releasedParam:released})
      .then(function(result){
          res.redirect();
        session.close();
      })
      .catch(function(err){
     console.log(err);
   });

      res.redirect('/');

});
app.listen(4000);
console.log('Server started on port 4000');

module.exports=app;   **strong text**

获取错误!!

TypeError:无法读取B:\nodejs\newp\app中未定义的属性“name”。js:75:30在第二层。在路由的下一个(B:\nodejs\newp\node\u modules\express\lib\router\layer.js:95:5)(B:\nodejs\newp\node\u modules\express\lib\router\route.js:131:13)处理[作为句柄\u请求](B:\nodejs\newp\router\route)。层上的调度(B:\nodejs\newp\node\u modules\express\lib\router\route.js:112:3)。handle[作为handle\u请求](B:\nodejs\newp\node\u modules\express\lib\router\layer.js:95:5)位于B:\nodejs\newp\node\u modules\express\lib\router\index。js:277:22在功能区。在层的serveStatic(B:\nodejs\newp\node\u modules\express\lib\router\index.js:330:12)(B:\nodejs\newp\node\u modules\express\lib\router\index.js:271:10)的下一个(B:\nodejs\newp\node\u modules\serve static\index.js:75:16)中处理参数(B:\nodejs\newp\node\modules\router\index.js:12)。handle[作为handle\u请求](B:\nodejs\newp\node\u modules\express\lib\router\layer.js:95:5)

有人能帮我解决这个问题吗?我是新的节点js以及neo4j。

提前谢谢

共有1个答案

葛磊
2023-03-14

☼ 你好

在Neo4j数据库中是否有“个人”标签?

 session
    .run('MATCH (n:Person) RETURN n LIMIT 25')

您是否尝试过:

session
        .run('MATCH (n:Actor) RETURN n LIMIT 25')

我想你举了这个例子,但是他们用“电影”和“演员”的标签

 类似资料:
  • 我希望它创建每个节点(而不是在已经存在具有相同ID的节点时创建新节点),并创建每个关系(在CSV中指定具有多个关系的节点中有多个关系from/to节点)。 实际发生的情况:它似乎创建了所有唯一的节点。它还创建了节点之间的关系,但它只为每个节点设置一个关系,而不考虑与多个其他节点进行通信的一些节点。 我很困惑,因为我的理解是,如果在数据库中还没有出现关系,它将创建关系,所以我认为它将创建CSV中指定

  • 我有一个csv格式的数据集。其中一个字段是“elem_type”。基于此类型,我需要创建不同的类型节点,并在使用csv load加载数据时,根据“elem_type”为csv的“列”赋予不同的名称,有什么方法可以做到这一点吗? 我的csv没有标头,数据如下所示: 基于第一个colmuns,即我的“elem_type”,我要加载数据并定义3种类型的节点(Person,Car,Boat)

  • 我试图在Neo4j中创建节点之间的关系。我正在使用Neo4J(2.1.8社区) 我试图创建以下关系。 创建一个新的员工(节点),它将向DB中的Manager(节点)报告(空关系)(按名称搜索)。我使用了下面的查询。 我得到了下面的错误。 谁能告诉我这个问题出了什么问题?另外,如果这不是使用GraphRespository创建关系的正确方法,那么我还可以使用什么来实现同样的目的呢。 提前感谢。 注意

  • 我在同一个文件夹(tut67)中创建了这个javascript文件,index.html,about.html,contact.html,services.html,但它仍然给出了每个html文件的错误。(我使用MacBook Air)。 代码如下::: 常量about=fs.readfileSync('./about.html'); const contact=fs.readfileSync('

  • 我有一个csv格式的数据集。其中一个字段是类型,类似于枚举。基于此类型,我需要在使用csv LOAD加载数据时创建不同的类型、节点和关系。您可以在csv中调用具有定义子类型的属性的超级类型的行。 我真的不知道如何在Cypher中做到这一点。我唯一的选择是将一个csv文件拆分为每种类型的csv文件,并运行不同的密码吗?

  • 我使用的是Spring数据Neo4j 3.3。1.2与Neo4j服务器一起发布。3. 我的问题是有一些节点是我的实体的副本,但它只有索引属性。 我的班级看起来像这样 当一个新节点被创建时,我首先检查是否有一个现有的节点,如果它存在就更新它,否则创建一个新的节点。 存储库接口。 在Neo4j中,实体被创建到具有所有属性的节点。但是有些节点也有一个只包含productId的重复节点。问题是这并没有发生