Код Neo4j NodeJS не отображает данные всех узлов - PullRequest
0 голосов
/ 16 ноября 2018

Я интегрировал Neo4j в мои приложения NodeJS (бэкэнд) и Angular6 (интерфейс).Мой запрос выполняется, и я получаю данные узлов и сети подключенных узлов в моем браузере Neo4j.Тем не менее, я хочу, чтобы все данные узлов отображались через определенный запрос на моей консоли (то есть в NodeJS -> back-end и angular -> front-end).Это не происходитЯ получаю только данные первого узла.Пожалуйста, помогите мне восстановить все отображаемые узловые данные в NodeJS.

Код NodeJS

neo4j-controller.js

// Require Neo4j
var neo4j = require('neo4j-driver').v1;

var path = require('path');
var logger = require('morgan');
var bodyParser = require('body-parser');
var express = require('express');

var router = express.Router();

var app = express();



 const driver = new neo4j.driver("bolt://localhost:11001", neo4j.auth.basic("neo4j", "ib1"));


 const cypher = 'MATCH (n) RETURN count(n) as count';




app.set('views', path.join(__dirname, 'views'));

 app.use(logger('dev'));
 app.use(bodyParser.json());
 app.use(bodyParser.urlencoded({ extended: false }));
 app.use(express.static(path.join(__dirname, 'public')));


var session = driver.session();
var request = require('request');

router.post('/', seekParameter);


 module.exports = router;


//working code below

// -------------------------------  Original Code  ----------------------------------------

function seekParameter(req, res) { 

    console.log("INSIDE NODE JS CONTROLLER OF seekParameter");

    console.log("BODY IS ", req.body);

        session

           .run(`MATCH p=()-[r:Parameter]->() RETURN p`)  
           .then(function (result){

               result.records.forEach(function(record){
                   console.log("record = ", record);
                   console.log("result = ", result)
                   console.log("1] record._fields[0].properties=",record._fields[0].properties);   

                   res.send(record);           
               });

           })      
           .catch(function(err){
            console.log("inside catch = " + err);
        })

        session.close();   
}

output

 INSIDE NODE JS CONTROLLER OF seekParameter
BODY IS  undefined
record =  Record {
  keys: [ 'p' ],
  length: 1,
  _fields:
   [ Path { start: [Object], end: [Object], segments: [Array], length: 1 } ],
  _fieldLookup: { p: 0 } }
result =  { records:
   [ Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] } ],
  summary:
   ResultSummary {
     statement:
      { text: ' MATCH p=()-[r:Parameter]->() RETURN p ;',
        parameters: {} },
     statementType: 'r',
     counters: StatementStatistics { _stats: [Object] },
     updateStatistics: StatementStatistics { _stats: [Object] },
     plan: false,
     profile: false,
     notifications: [],
     server: ServerInfo { address: 'localhost:11001', version: 'Neo4j/3.4.7' },
     resultConsumedAfter: Integer { low: 9, high: 0 },
     resultAvailableAfter: Integer { low: 1, high: 0 } } }
1] record._fields[0].properties= { name: 'accidentTime' }
 2]record._fields[1] = [ Path {
    start: Node { identity: [Object], labels: [Array], properties: [Object] },
    end: Node { identity: [Object], labels: [Array], properties: [Object] },
    segments: [ [Object] ],
    length: 1 } ]
record =  Record {
  keys: [ 'p' ],
  length: 1,
  _fields:
   [ Path { start: [Object], end: [Object], segments: [Array], length: 1 } ],
  _fieldLookup: { p: 0 } }
result =  { records:
   [ Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] },
     Record {
       keys: [Array],
       length: 1,
       _fields: [Array],
       _fieldLookup: [Object] } ],
  summary:
   ResultSummary {
     statement:
      { text: ' MATCH p=()-[r:Parameter]->() RETURN p ;',
        parameters: {} },
     statementType: 'r',
     counters: StatementStatistics { _stats: [Object] },
     updateStatistics: StatementStatistics { _stats: [Object] },
     plan: false,
     profile: false,
     notifications: [],
     server: ServerInfo { address: 'localhost:11001', version: 'Neo4j/3.4.7' },
     resultConsumedAfter: Integer { low: 9, high: 0 },
     resultAvailableAfter: Integer { low: 1, high: 0 } } }
1] record._fields[0].properties= { name: 'productType' }
 2]record._fields[1] = [ Path {
    start: Node { identity: [Object], labels: [Array], properties: [Object] },
    end: Node { identity: [Object], labels: [Array], properties: [Object] },
    segments: [ [Object] ],
    length: 1 } ]

inside catch = Error: Can't set headers after they are sent.

1 Ответ

0 голосов
/ 16 ноября 2018

Спасибо.Я решил проблему.Место и параметр, которые я передавал в ответе, были неправильными.

Правильный код -

session

           .run(` MATCH p=()-[r:Parameter]->() RETURN p ;`)  
           .then(function (result){

               result.records.forEach(function(record){
                   console.log("record = ", record);
                   console.log("result = ", result)
                   console.log("1] record._fields[0].properties = ",record._fields[0].end.properties);   
                //    res.send(record);           
               });
               res.send(result); 

           })      
           .catch(function(err){
            console.log("inside catch = " + err);
        })

        session.close();   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...