0

我正在尝试从 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 的相同命令

4

1 回答 1

1

: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}
)
...
于 2020-05-08T20:30:49.880 回答