尝试使用节点模块在neo4j数据库的节点中添加唯一的slug时出错?

时间:2017-09-14 14:14:27

标签: node.js neo4j

在Node.js环境中,我使用的是neo4j dB。我想为neo4j中的每个节点使用节点模块“uslug”创建独特的slug。但是我在js文件中尝试在cypher查询中使用此函数时收到错误。 我的问题:

var uslug = require("uslug")
var slug = `MERGE(t:Test) set t.Blogtitle= uslug('Testing Slug','-')`

//仅供参考,为了便于阅读,我还没有在这里添加与neo4j驱动程序相关的代码......

那么,我应该如何使用uslug函数,以便为neo4j 中的每个节点创建唯一的slug?即使已存在相同的Blogtitle,如何将slug设置为增加,如“Testing-Slug-1”?

1 个答案:

答案 0 :(得分:0)

您收到错误

  

Neo4jError:未知功能' uslug'。这是错误

因为Neo4j不了解函数uslug,而是将其传递给Cypher查询。您应该在node.js上下文中调用uslug,而不是在Neo4j数据库中。

试一试:

var uslug = require("uslug")
var slug = "MERGE(t:Test) set t.Blogtitle='" + uslug('Testing Slug') + "'"

即:调用uslug('Testing Slug')并将结果与​​Cypher查询联系起来。

此外,根据code samples,第二个参数应该是一个可选对象,而不是您正在使用的字符串。因此,您应该将函数调用修复为uslug('Testing Slug')