Nodejs中调用Neo4j QueryBuilder的raw方法无法识别code参数如何解决
解决思路
- 核对所用查询构建库的占位符语法规范:Neo4j官方原生驱动默认使用
$参数名作为参数占位符,部分封装库如果直接沿用该规范,你代码中写的{code}就会无法被识别,需要替换为$code。 - 补充
raw方法的参数入参:绝大多数raw方法不会自动捕获外部变量,你需要将绑定参数作为第二个参数显式传入方法,才能完成参数和占位符的绑定。 - 修正后的参考代码:
const getCodes = ({ code }) => QueryBuilder() .raw("MATCH (j:DETAILS) WHERE j.code = $code RETURN j", { code });
- 补充排查方式:如果修改后仍不生效,可以在执行查询的逻辑处打印最终生成的Cypher语句以及绑定的参数对象,排查是否存在占位符拼写不匹配、参数未被正确传入的问题。
内容的提问来源于stack exchange,提问作者user3447653
相关产品推荐
相关产品推荐

