[英]Neo4j in Javascript: Parameters not put in to query
I'm running into trouble when using the neo4j plugin of thingdom . 使用thingdom的neo4j插件时遇到麻烦。 It seems like the plugin is not able to recognize {mlabel} and {mdata} as placeholders.
插件似乎无法将{mlabel}和{mdata}识别为占位符。 Code and error follows.
代码和错误如下。
Thank you very much! 非常感谢你!
var query = [
'CREATE (p:{mlabel} {{mdata}})',
'RETURN p'
].join('\n');
var params = {
mlabel : 'person',
mdata : {
name: 'Pete',
surname: 'Strutton',
age: 35
}
};
this.db.query(query, params, function (err, results) {
if (err) throw err;
return result;
});
Error: Invalid input '{': expected whitespace or a label name (line 1, column 11) "CREATE (p:{mlabel} {{mdata}})" ^ at exports.adjustError (C:\\Spree Github Repository\\Phone\\express\\SpreeRouter \\node_modules\\neo4j\\lib\\util.js:71:15) at __$GraphDatabase_prototype_query__20 (C:\\Spree Github Repository\\Phone\\ex press\\SpreeRouter\\node_modules\\neo4j\\lib\\GraphDatabase.js:942:26) at C:\\Spree Github Repository\\Phone\\express\\SpreeRouter\\node_modules\\neo4j\\l ib\\GraphDatabase.js:2:6247 at Object.__g.trampoline.flush (C:\\Spree Github Repository\\Phone\\express\\Spr eeRouter\\node_modules\\neo4j\\lib\\Node.js:2:3552) at Request.___ [as _callback] (C:\\Spree Github Repository\\Phone\\express\\Spre eRouter\\node_modules\\neo4j\\lib\\GraphDatabase.js:2:5602) at Request.self.callback (C:\\Spree Github Repository\\Phone\\express\\SpreeRout er\\node_modules\\neo4j\\node_modules\\request\\request.js:372:22) at Request.emit (events.js:98:17) at Request.<anonymous> (C:\\Spree Github Repository\\Phone\\express\\SpreeRouter \\node_modules\\neo4j\\node_modules\\request\\request.js:1317:14) at Request.emit (events.js:117:20) at IncomingMessage.<anonymous> (C:\\Spree Github Repository\\Phone\\express\\Spr eeRouter\\node_modules\\neo4j\\node_modules\\request\\request.js:1265:12)
Solution: 解:
You cannot parametrize your query-selectors anywhere. 您无法在任何地方参数化查询选择器。 It is only possible on data that you put into your query.
只有在您输入查询的数据上才有可能。 The above wouldn't work, but following query would:
上面的方法不起作用,但是下面的查询将起作用:
var query = [
'CREATE (p:LABEL {mdata})',
'RETURN p'
].join('\n').replace('LABEL', label);
var params = {
mdata : data
};
this.db.query(query, params, function (err, results) {
if (err) throw err;
console.log(results);
return results[0];
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.