2017-02-21 2 views
1

Я пытаюсь создать REST API, который подключается к экземпляру NEO4J. Я использую библиотеку koa-neo4j в качестве основы (https://github.com/assister-ai/koa-neo4j-starter-kit).Не удается передать пареметры с использованием библиотеки KOA-NEO4J

Этот первый пример ниже работает нормально. Когда я попал в конечную точку «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 

Я пытаюсь построить на этом примере создания конечной точки, где я могу передать параметр, который будет использоваться в запрос cypher, я выполнил эту документацию и в итоге оказался ниже.

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

метрической по-name.cyp

MATCH (a:metric {name: $metricname }) 
RETURN a AS metric 

Когда я попал в конечную точку "MyApp/метрика/TestMetricName" Я просто получаю сообщение об ошибке назад, которая исходит от Neo4j.

ConflictError: error while executing Cypher: Error: Variable $metricname not defined (line 1, column 24 (offset: 23)) "MATCH (a:metric {name: $metricname })"

Похоже, что код не выгрузив заполнитель $ metricname в шифровальщика запросе значения, что я прошел (например TestMetricName).

Любая помощь приветствуется.

+0

Какую версию 'neo4j' вы используете? –

+0

Neo4j Community Edition 3.0.5 работает на GrapheneDB.com – n4nite

+2

Попробуйте '{metricname}' вместо '$ metricname' –

ответ