странный ответ node js + neo4j - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь сделать простое приложение с neo4j и nodejs, но я просто застрял в этом странном ответе. Я вставляю вещи в neo4j, и это работает, но когда я пытаюсь использовать cypher для перехвата других атрибутов узла, я нахожу эту ошибку:

    Result {
      _stack: '\n    at captureStacktrace (/home/jake/node_modules/neo4j-driver/lib/v1/result.js:199:15)\n    at new Result (/home/jake/node_modules/neo4j-driver/lib/v1/result.js:65:19)\n    at Session._run (/home/jake/node_modules/neo4j-driver/lib/v1/session.js:152:14)\n    at Session.run (/home/jake/node_modules/neo4j-driver/lib/v1/session.js:130:19)\n    at /home/jake/Área de Trabalho/simples/index.js:16:31\n    at Layer.handle [as handle_request] (/home/jake/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/jake/node_modules/express/lib/router/route.js:137:13)\n    at Route.dispatch (/home/jake/node_modules/express/lib/router/route.js:112:3)\n    at Layer.handle [as handle_request] (/home/jake/node_modules/express/lib/router/layer.js:95:5)\n    at /home/jake/node_modules/express/lib/router/index.js:281:22',
  _streamObserver: 
   SessionStreamObserver {
     _fieldKeys: null,
     _fieldLookup: null,
     _queuedRecords: [],
     _tail: null,
     _error: null,
     _hasFailed: false,
     _observer: null,
     _conn: null,
     _meta: {},
     _session: 
      Session {
        _mode: 'WRITE',
        _readConnectionHolder: [Object],
        _writeConnectionHolder: [Object],
        _open: true,
        _hasTx: false,
        _lastBookmark: [Object],
        _transactionExecutor: [Object] } },
  _p: null,
  _statement: 'MATCH (p:Person) WHERE p.name =\'$name\' return p.age',
  _parameters: { name: 'Jake' },
  _metaSupplier: [Function],
  _connectionHolder: 
   ConnectionHolder {
     _mode: 'WRITE',
     _connectionProvider: 
      DirectConnectionProvider {
        _address: [Object],
        _connectionPool: [Object],
        _driverOnErrorCallback: [Function: bound _driverOnErrorCallback] },
     _referenceCount: 1,
     _connectionPromise: Promise { <pending> } } }'

печать сообщения об ошибке

Чтобы было понятно: я просто хочу найти узел по его имени и затем показать его возраст. Я ожидал Json данных.

Мой код:

`const express = require ("express");
const app = express();
const bodyParser = require('body-parser');

app.use(bodyParser());

//Conec
const neo4j = require('neo4j-driver').v1;
const driver = neo4j.driver('bolt://localhost:7687', neo4j.auth.basic('neo4j', '123'));
const session = driver.session();

// Data Manipulation

app.post('/', function (req, res){
var find = req.body.pesquisa;
  const result_dois = session.run("MATCH (p:Person) WHERE p.name ='$name' return p.age", {name:find});

  console.log(result_dois);

res.end();

});

Если кто-то может помочь ...

1 Ответ

0 голосов
/ 28 марта 2020
MATCH (p:Person) WHERE p.name ='$name' return p.age

Нет необходимости помещать $ name в кавычки. Если вы это сделаете, он не будет принимать значение, переданное в параметрах, вместо этого он будет рассматриваться как строка со значением "$ name".

Исправленный запрос:

MATCH (p:Person) WHERE p.name =$name return p.age
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...