JavaScript 中的 declareUpdate 在 MarkLogic 8 中调用 XQuery
declareUpdate in JavaScript calling XQuery in MarkLogic 8
我尝试使用函数 declareUpdate();
我 copy/paste 手册中的代码,但收到以下错误消息。
一定是我遗漏了什么。由于这个错误,我添加了 declareUpdate:
{error: "XDMP-UPDATEFUNCTIONFROMQUERY: xdmp.apply(create-source#3, "CS_wifi.json", "cswifi", {"getId":{}, "findSource":{}, "createSourceWithMap":{}, "buildSo...}) -- Cannot apply an update function from a query"}
通过 declareUpdate 我得到了这个:
{
"errorResponse": {
"statusCode": 400,
"status": "Bad Request",
"messageCode": "JS-JAVASCRIPT",
"message": "JS-JAVASCRIPT: declareUpdate(); -- Error running JavaScript request: Operation not allowed on the currently executing transaction with identifier declareUpdate"
}
}
/**
* @name vriendingest
* This REST extentsion provides SOAP service for the shipment data
*/
declareUpdate();
var eput = require("/MarkLogic/rest-api/lib/endpoint-util.xqy");
var link = require("/ext/obi/lib/link-lib.xqy");
var object = require("/ext/obi/lib/object-service-lib.xqy", "/ext/obi/lib/object-lib.xqy");
var source = require("/ext/obi/lib/source-lib.xqy");
function post(context, params, input) {
try {
xdmp.log('title')
xdmp.log(params.title);
testing = source.buildUri('takethisuri');
title = params.title;
dataset = "cswifi";
sourceId = source.createSource(title, dataset, source);
xdmp.log(sourceId);
response = '{success: "' + testing + '"}';
}
catch(err){
response = '{error: "' + err + '"}';
}
context.outputTypes = ["application/xml"];
context.outputStatus = [200, "OK"];
return response;
}
// Main
exports.POST = post;
POST 调用扩展默认获取查询模式。使用 XQuery,您可以向 POST 函数添加注释来更改它,但是没有针对 ServerSide JavaScript 的注释。你最好切换到 PUT 方法..
HTH!
我尝试使用函数 declareUpdate(); 我 copy/paste 手册中的代码,但收到以下错误消息。
一定是我遗漏了什么。由于这个错误,我添加了 declareUpdate:
{error: "XDMP-UPDATEFUNCTIONFROMQUERY: xdmp.apply(create-source#3, "CS_wifi.json", "cswifi", {"getId":{}, "findSource":{}, "createSourceWithMap":{}, "buildSo...}) -- Cannot apply an update function from a query"}
通过 declareUpdate 我得到了这个:
{
"errorResponse": {
"statusCode": 400,
"status": "Bad Request",
"messageCode": "JS-JAVASCRIPT",
"message": "JS-JAVASCRIPT: declareUpdate(); -- Error running JavaScript request: Operation not allowed on the currently executing transaction with identifier declareUpdate"
}
}
/**
* @name vriendingest
* This REST extentsion provides SOAP service for the shipment data
*/
declareUpdate();
var eput = require("/MarkLogic/rest-api/lib/endpoint-util.xqy");
var link = require("/ext/obi/lib/link-lib.xqy");
var object = require("/ext/obi/lib/object-service-lib.xqy", "/ext/obi/lib/object-lib.xqy");
var source = require("/ext/obi/lib/source-lib.xqy");
function post(context, params, input) {
try {
xdmp.log('title')
xdmp.log(params.title);
testing = source.buildUri('takethisuri');
title = params.title;
dataset = "cswifi";
sourceId = source.createSource(title, dataset, source);
xdmp.log(sourceId);
response = '{success: "' + testing + '"}';
}
catch(err){
response = '{error: "' + err + '"}';
}
context.outputTypes = ["application/xml"];
context.outputStatus = [200, "OK"];
return response;
}
// Main
exports.POST = post;
POST 调用扩展默认获取查询模式。使用 XQuery,您可以向 POST 函数添加注释来更改它,但是没有针对 ServerSide JavaScript 的注释。你最好切换到 PUT 方法..
HTH!