Как разобрать поисковый запрос с кавычками в коде

У меня есть поисковый запрос, который работает в клиенте базы данных, но при использовании его в nodejs с ошибкой разбора кавычек.

Вот оригинальный запрос

   match (n)-[l:DATA_FLOWS]->(m) where l.nme =~ '(?i).*new.*' return n, l, m

Я пытаюсь использовать это в кодировании.

session.run('match (n)-[l:DATA_FLOWS]->(m) where l.nme =~ ''(?i).*'{feedParam}'.*' return n, l, m', {feedParam:search.value}).then(function (result) {

Как завершить кавычки, чтобы это работало?

2 ответа

Решение

Целое регулярное выражение должно быть передано как параметр:

session.run('match (n)-[l:DATA_FLOWS]->(m) where l.nme =~ ''(?i).*'{feedParam}'.*' return n, l, m', {feedParam:search.value})
.then(...)

Должен быть изменен на:

var regexStr = '(?i).*' + search.value + '.*'
session.run('MATCH (n)-[l:DATA_FLOWS]->(m) WHERE l.nme =~ {feedParam} RETURN n, l, m', {feedParam: regexStr})
.then(...)

** обновление с более чем одним параметром **:

var regexStr = '(?i).*' + search.value + '.*'
var source = 'BoxA'
var destination = 'Box J'
var query = `MATCH (n)-[l:DATA_FLOWS]->(m) WHERE l.nme =~ {feedParam}
AND n.nme = $source AND m.nme = $destination 
RETURN n, l, m`
session.run('', {feedParam: regexStr, source: source, destination: destination})
    .then(...)

Вы можете объединить строки с + и вы можете использовать 'или "для строк.

Так замени ' с '+"'"+'

В вашем случае вы не используете ", поэтому вы можете просто поместить строку в тех

session.run("match (n)-[l:DATA_FLOWS]->(m) where l.nme =~ '(?i).*new.*' return n, l, m", {feedParam:search.value})

Другие вопросы по тегам