neo4j Javascript API: создать параметр - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь создать параметр из приложения Javascript

Но следующий код не работает:

var input=json_table_definition.replace(/[\n\r]+/g, '');    
  var session = driver.session();
  let results;

  return  session
    .run(':param jsonTable=>$json_table_definition',
        {json_table_definition:input}
    )
    .then(result => {
      session.close();


    })
    .catch(error => {
      session.close();
      results=[];
      throw error;
    });

Я получаю следующую ошибку в браузере:

XXXXX Uncaught (in promise) Neo4jError: Invalid input ':': expected <init> (line 1, column 1 (offset: 0))
":param jsonTable=>$json_table_definition"
 ^ 

Я дважды проверил значение в параметре json_table_definition, и все в порядке. Та же команда из neo4j

1 Ответ

1 голос
/ 08 мая 2020

:param - это просто команда браузера neo4j, а не на языке Cypher.

Фактически вы уже знаете, как передать параметры , поскольку ваш вызов run() на самом деле передача json_table_definition в качестве параметра. Вам просто нужно указать допустимый запрос Cypher, чтобы использовать этот параметр.

Например (со случайным запросом Cypher):

...
.run('MATCH (n:Foo) WHERE n.def = $json_table_definition RETURN n',
    {json_table_definition: input}
)
...
...