通过来自 node js 的 SPARQL over HTTP POST 请求插入数据
Insert data through SPARQL over HTTP POST request from node js
我在我的节点应用程序中使用 'request' 模块来 POST 驻留在 fuseki 服务器中的模型中的 ontology 数据。我正在使用以下代码:
var request = require('request');
var querystring = require('querystring');
var myquery = querystring.stringify({update: "PREFIX test:<http://www.semanticweb.org/muhammad/ontologies/2017/2/untitled-ontology-14#> INSERT { ?KPIs test:hasValue 2009} WHERE { ?KPIs test:hasValue ?Newvalue}"});
request.post('http://localhost:3030/DS-1/sparql?'+myquery, function (error, response, body) {
if (!error && response.statusCode == 200) {
// Show the HTML for the Google homepage.
console.log('successful update');
console.log(body);
} else {
console.log(response.statusCode);
console.warn(error);
}
});
PS:当我使用 POSTMAN 发送 Post 请求以插入数据时,它工作正常,但在我的节点应用程序中,它没有。它显示错误 'bad request 400'。
P.S:GET 方法在 POSTMAN 和节点应用程序中工作正常。
/DS-1/sparql
为查询服务
INSERT
是一个更新操作。
尝试/DS-1/update
最好POST 在请求正文中使用 Content-type 进行更新。 ?update=
可能无效。
已解决的问题:
我在 post 请求的格式上犯了错误。更正后的格式如下。
var request = require('request');
var querystring = require('querystring');
var myquery2 = querystring.stringify({update: "PREFIX test:<http://www.semanticweb.org/muhammad/ontologies/2017/2/untitled-ontology-14#> INSERT { ?KPI_Variables test:hasValue_ROB1 2000} WHERE { ?KPI_Variables test:hasValue_ROB1 ?Newvalue FILTER(?KPI_Variables= test:Actual_Production_Time)}"});
request.post({headers: {'content-type' : 'application/x-www-form-urlencoded'},url:'http://localhost:3030/DS-1/?'+myquery2 }, function (error, response, body) {
if (!error && response.statusCode == 200) {
// Show the HTML for the Google homepage.
console.log('successful update');
console.log(body);
}
else
{
console.log(response.statusCode)
console.warn(error);
}
});
我的 request.post 中缺少 'headers' 和 'url' 元素。
我在我的节点应用程序中使用 'request' 模块来 POST 驻留在 fuseki 服务器中的模型中的 ontology 数据。我正在使用以下代码:
var request = require('request');
var querystring = require('querystring');
var myquery = querystring.stringify({update: "PREFIX test:<http://www.semanticweb.org/muhammad/ontologies/2017/2/untitled-ontology-14#> INSERT { ?KPIs test:hasValue 2009} WHERE { ?KPIs test:hasValue ?Newvalue}"});
request.post('http://localhost:3030/DS-1/sparql?'+myquery, function (error, response, body) {
if (!error && response.statusCode == 200) {
// Show the HTML for the Google homepage.
console.log('successful update');
console.log(body);
} else {
console.log(response.statusCode);
console.warn(error);
}
});
PS:当我使用 POSTMAN 发送 Post 请求以插入数据时,它工作正常,但在我的节点应用程序中,它没有。它显示错误 'bad request 400'。 P.S:GET 方法在 POSTMAN 和节点应用程序中工作正常。
/DS-1/sparql
为查询服务
INSERT
是一个更新操作。
尝试/DS-1/update
最好POST 在请求正文中使用 Content-type 进行更新。 ?update=
可能无效。
已解决的问题: 我在 post 请求的格式上犯了错误。更正后的格式如下。
var request = require('request');
var querystring = require('querystring');
var myquery2 = querystring.stringify({update: "PREFIX test:<http://www.semanticweb.org/muhammad/ontologies/2017/2/untitled-ontology-14#> INSERT { ?KPI_Variables test:hasValue_ROB1 2000} WHERE { ?KPI_Variables test:hasValue_ROB1 ?Newvalue FILTER(?KPI_Variables= test:Actual_Production_Time)}"});
request.post({headers: {'content-type' : 'application/x-www-form-urlencoded'},url:'http://localhost:3030/DS-1/?'+myquery2 }, function (error, response, body) {
if (!error && response.statusCode == 200) {
// Show the HTML for the Google homepage.
console.log('successful update');
console.log(body);
}
else
{
console.log(response.statusCode)
console.warn(error);
}
});
我的 request.post 中缺少 'headers' 和 'url' 元素。