Я пытаюсь создать REST API, который подключается к экземпляру NEO4J. В качестве основы я использую библиотеку koa-neo4j (https://github.com/assister-ai/koa-neo4j-starter-kit).
Этот первый пример ниже работает нормально. Когда я попадаю в конечную точку «myapp/metric», я получаю ожидаемый результат из базы данных.
Index.js
//Return all metrics from the database
app.defineAPI({
method: 'GET',
route: '/api/v1/imm/metric',
cypherQueryFile: './src/api/v1/imm/metric/metric.cyp'
});
metric.cyp
MATCH (a:metric)
RETURN a AS metric
Я пытаюсь использовать этот пример, создавая конечную точку, где я могу передать параметр, который будет использоваться в шифрованном запросе. Я следил за документацией и получил следующее.
Index.js
//Return all metrics from the database matching a specific metric name
app.defineAPI({
method: 'GET',
route: '/api/v1/imm/metric/:metricname',
cypherQueryFile: './src/api/v1/imm/metric/metric-by-name.cyp'
});
метрика по имени.cyp
MATCH (a:metric {name: $metricname })
RETURN a AS metric
Когда я нажимаю конечную точку «myapp/metric/TestMetricName», я просто получаю сообщение об ошибке, которое исходит от Neo4j.
ConflictError: ошибка при выполнении Cypher: Ошибка: переменная
$metricname
не определена (строка 1, столбец 24 (смещение: 23)) «MATCH (a: metric {name: $metricname})»
Похоже, код не заменяет заполнитель $metricname в шифрованном запросе на значение, которое я передал (например, TestMetricName).
Любая помощь приветствуется.
neo4j
вы используете? - person stdob--   schedule 21.02.2017{metricname}
вместо$metricname
- person stdob--   schedule 21.02.2017metricname
не определена (строка 1, столбец 24 (смещение: 23)) MATCH (a: metric {name: metricname}) - person n4nite   schedule 21.02.2017