【发布时间】:2021-04-26 10:07:01
【问题描述】:
我正在尝试对此路由发出请求并执行此 sparql 查询。我应该怎么做才能等待这个stream.on()完成然后调用res.send()?我在 stream.on() 中获取数据。 我正在使用 sparql-http-client 库将查询发送到 rdf4j 服务器和 express.js 以创建此路由。
app.get('/', async (req, res) => {
let endpointUrl = "http://localhost:8080/rdf4j-server/repositories/graph";
let regions = [];
const query = `
PREFIX : <http://abc.ro#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schema: <http://schema.org/>
SELECT ?name
WHERE
{
?region a schema:DefinedRegion.
?region rdfs:label ?name
}`;
const client = new sparql({ endpointUrl });
const stream = await client.query.select(query);
stream.on('data', row => {
regions.push(row.name.value);
});
stream.on('error', err => {
console.error(err)
});
res.send(regions); // this is sending an empty array
});
【问题讨论】:
标签: node.js express stream sparql httpresponse