Я установил API, где на стороне клиента пользователь может рассчитать маршрут между точками.Однако у меня возникли проблемы с запросом psql, который работает в postgres, но когда я использую тот же запрос в узле JS, я получаю сообщение об ошибке.
Я использую nodeJS, Express и Postgres.Если я выполню запрос ниже в pgAdmin4, я получу ожидаемый результат.
SELECT b.gid, b.the_geom, b.cost_s, b.length_m FROM pgr_dijkstra('SELECT gid::bigint as id, source::bigint,
target::bigint, cost_s::double precision as cost,
reverse_cost_s::double precision as reverse_cost FROM ways
WHERE the_geom && ST_Expand((SELECT ST_Collect(the_geom)
FROM ways_vertices_pgr WHERE id IN(589143, 581050)), 0.01)',
589143, 581050) a LEFT JOIN ways b ON (a.edge = b.gid);
Но когда я использую тот же запрос в узле J (см. Ниже), я получаю сообщение об ошибке, говорящее error: syntax error at or near "&&"
.Что я делаю не так?
const start = parseInt(request.params.start)
const end = parseInt(request.params.end)
const sql2 =
"SELECT b.gid, b.the_geom, b.cost_s, b.length_m FROM pgr_dijkstra('SELECT gid::bigint as id, source::bigint,"+
"target::bigint, cost_s::double precision as cost," +
"reverse_cost_s::double precision as reverse_cost FROM ways" +
"WHERE the_geom && ST_Expand((SELECT ST_Collect(the_geom)" +
"FROM ways_vertices_pgr WHERE id IN(" + start + "," + end + ")), 0.01)'," +
start + "," + end + ") a LEFT JOIN ways b ON (a.edge = b.gid);"