Javascript中的Neo4j:未将参数放入查询

Javascript中的Neo4j:未将参数放入查询,javascript,node.js,neo4j,cypher,Javascript,Node.js,Neo4j,Cypher,我在使用电脑时遇到了麻烦。插件似乎无法将{mlabel}和{mdata}识别为占位符。代码和错误如下 多谢各位 var query = [ 'CREATE (p:{mlabel} {{mdata}})', 'RETURN p' ].join('\n'); var params = { mlabel : 'person', mdata : { name: 'Pete', surname: 'Strutton', a

我在使用电脑时遇到了麻烦。插件似乎无法将{mlabel}和{mdata}识别为占位符。代码和错误如下

多谢各位

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;
});
错误:无效输入“{”:应为空白或标签名称(第1行第11列)
“创建(p:{mlabel}{{mdata}})”
^
在exports.adjustError(C:\Spree Github Repository\Phone\express\SpreeRouter
\node_modules\neo4j\lib\util.js:71:15)
在\uuuuuu$GraphDatabase\u prototype\u query\uuuu20(C:\Spree Github Repository\Phone\ex
按\SpreeRouter\node\u modules\neo4j\lib\GraphDatabase.js:942:26)
位于C:\Spree Github Repository\Phone\express\SpreeRouter\node\u modules\neo4j\l
ib\GraphDatabase.js:2:6247
at Object.\uu g.trampoline.flush(C:\Spree Github Repository\Phone\express\Spr
eeRouter\node\u modules\neo4j\lib\node.js:2:3552)
应请求。uuuuuuuu[as\u回调](C:\Spree Github Repository\Phone\express\Spre
eRouter\node\u modules\neo4j\lib\GraphDatabase.js:2:5602)
at Request.self.callback(C:\Spree Github Repository\Phone\express\SpreeRout
er\node\u modules\neo4j\node\u modules\request\request.js:372:22)
at Request.emit(events.js:98:17)
应请求。(C:\Spree Github Repository\Phone\express\SpreeRouter)
\node_modules\neo4j\node_modules\request\request.js:1317:14)
at Request.emit(events.js:117:20)
在输入消息时。(C:\Spree Github Repository\Phone\express\Spr)
eeRouter\node\u modules\neo4j\node\u modules\request\request.js:1265:12)
解决方案:

您不能在任何地方参数化查询选择器。只能对输入查询中的数据进行参数化。上述操作不起作用,但以下查询将起作用:

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];
});
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];
});