我正在尝试使用node-neo4j
模块编写一个与neo4j一起使用的node.js应用程序。我正在尝试从nodejs
提交查询并发现它无效,所以我尝试从neo4j browser console
提交,以便更容易根本导致我的拼写错误,并发现它工作正常那里。关于发生了什么的任何想法?
查询:
Match (a:Paper { uid:26327110, citation:"Seitz A. \"Moving beyond a binary view of specificity in perceptual learning.\" Journal of vision. 15 12 (2015 Sep 1): 1422.", date:"2015 Sep 1"}) return a
答案 0 :(得分:2)
您可能应该使用参数,它们可能有助于解决任何编码问题。这看起来像这样:
var query_string = "MATCH (a:Paper {attributes}) RETURN a"
var attributes = {uid: 26327110, citation: "Seitz A. \"Moving beyond a binary view of specificity in perceptual learning.\" Journal of vision. 15 12 (2015 Sep 1): 1422.", date: "2015 Sep 1"};
db.cypherQuery(query_string, {attributes: attributes});
当然,如果您愿意,可以为各个值使用单独的参数。参数不仅可以帮助您不用担心编码,还允许Neo4j缓存查询。此外,如果您从用户参数传递值也可以帮助您防止注入攻击。
答案 1 :(得分:2)
在这种情况下,事实证明我只是一个白痴 - 错误发生是因为我使用新密码创建了一个新数据库,忘了调整我的节点服务器的身份验证。如果你有类似的问题,并在你的节点控制台中看到以下错误:[Error: HTTP Error 401 when running the cypher query against neo4j. undefined: undefined]
那么你也有一个白痴案例。正如Kunal在原始问题的评论中建议的那样,请检查您的身份验证。