我正在使用nodejs和graphdbjs。我的问题是我是否可以激活一个存储库并设置两个查询(在本例中为有效负载),这些查询将作为REST APis按需运行。例如
const server = new ServerClient(serverConfig);
const readTimeout = 30000;
const writeTimeout = 30000;
const repositoryClientConfig = new RepositoryClientConfig(['http://localhost:7200/repositories/V2'],{},'',readTimeout,writeTimeout);
server.getRepository('V2',repositoryClientConfig).then(repository => {
repository.registerParser(new SparqlJsonResultParser());
const payload = new GetQueryPayload()
.setQuery('select * where {?s ?p ?o}')
.setQueryType(QueryType.SELECT)
.setResponseType(RdfmimeType.SParqL_RESULTS_JSON)
.setLimit(100);
repository.query(payload).then((stream) => {
stream.on('data',(bindings) => {
var test = Object.values(bindings);
var element = {id: test[0].id.replace(/['"]+/g,''),name: test[1].id.replace(/['"]+/g,'')}
});
stream.on('end',() => {
restapp.get('/getallIDs',function(req,res) {
res.send(element);
});
restapp.listen(3000,function () {
console.log('App listening on port 3000!');
});
});
});
const payload2 = new GetQueryPayload()
.setQuery('select * where {?s ?p ?o}')
.setQueryType(QueryType.SELECT)
.setResponseType(RdfmimeType.SParqL_RESULTS_JSON)
.setLimit(100);
repository2.query(payload2).then((stream2) => {
stream2.on('data',(bindings2) => {
var test2 = Object.values(bindings2);
var i2=0;
test2.forEach(function(key,value){
if (i2%2==1){
return true;}
var element2 = {id: test2[0].id.replace(/['"]+/g,name: test2[1].id.replace(/['"]+/g,'')}
i++;
head2.table.push(element2);
});
});
stream2.on('end',() => {
restapp2.get('/getidby',res) {
res.send(head2);
});
restapp2.listen(3000,function () {
console.log('App listening on port 3000!');
});
});
我只希望有一个会话和多个有效负载,并且如果用户点击了正确的URL,则它将返回json。到目前为止,我得到一个错误,我无法解释:
{"level":"error","time":1572863035018,"name":"RDFRepositoryClient","repositoryUrl":"http://localhost:7200/repositories/V2","msg":"Cannot retry execution","v":1}
Error: Request failed with status code 400
at createError (/home/estathop/eclipse-workspace/test/node_modules/axios/lib/core/createError.js:16:15)
at settle (/home/estathop/eclipse-workspace/test/node_modules/axios/lib/core/settle.js:17:12)
at RedirectableRequest.handleResponse (/home/estathop/eclipse-workspace/test/node_modules/axios/lib/adapters/http.js:211:9)
at RedirectableRequest.emit (events.js:210:5)
at RedirectableRequest._processResponse (/home/estathop/eclipse-workspace/test/node_modules/follow-redirects/index.js:269:10)
at ClientRequest.RedirectableRequest._onNativeResponse (/home/estathop/eclipse-workspace/test/node_modules/follow-redirects/index.js:50:10)
at Object.onceWrapper (events.js:300:26)
at ClientRequest.emit (events.js:210:5)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:583:27)
at HTTPParser.parserOnHeadersComplete (_http_common.js:115:17)
对实现我要做什么的任何帮助?我的下一步是从静态服务获取ID并相应地形成有效负载 谢谢,很抱歉,如果我的问题是假的,但我是这个领域的新手