Marklogic xdmp.rollback() :无法读取 null 的 属性 'result'
Marklogic xdmp.rollback() : Cannot read property 'result' of null
我试图了解 ServerSide 中的回滚功能 JavaScript。我是 运行 下面的 JavaScript 查询,这是我从 xdmp.rollback()
的 MarkLogic 文档中得到的,我得到的错误是
[javascript] TypeError: Cannot read property 'result' of null.
查询:
declareUpdate({explicitCommit: true});
xdmp.documentInsert("/docs/first.json", {"first": 1});
xdmp.documentInsert("/docs/second.json", {"second": 2});
xdmp.rollback();
结果:
[javascript] TypeError: Cannot read property 'result' of null
而我尝试了 运行 XQuery 回滚函数 xdmp:rollback()
,它工作正常而不会引发错误。这是什么原因?
代码示例确实有效。如果执行它,您会注意到那些文档没有插入到数据库中。您可以添加一些诊断 xdmp.log()
消息并在 ErrorLog 中查找它们以证明它正在执行您的代码。
当通过查询控制台执行代码时,eval 执行的结果似乎不是 complete/expected 有效负载。
When a transaction is rolled back, the current statement immediately terminates, updates made by any statement in the transaction are discarded, and the transaction terminates.
The result of a statement terminated with xdmp:rollback
is always the empty sequence.
因此,评估响应不是返回带有 result
属性 的响应对象,而是 null
,并尝试访问 result
属性 导致异常冒泡。
如果执行以下代码:
declareUpdate({explicitCommit: true});
xdmp.commit();
向查询控制台返回如下响应:
{
"elapsedCurrent":0.605,
"elapsedDiff":-0.307,
"isSequence":false,
"resultCount":1,
"results":[{"type":"Null", "result":"null"}]
}
但是当从 xdmp.rollback()
页面执行示例代码时,会返回以下响应,您看到的是查询控制台结果面板中显示的 errorcode
:
{
"error":{
"evalinfo":"query evaluated as JavaScript",
"errorcode":"[javascript] TypeError: Cannot read property 'result' of null",
"stacktrace":{"stack":[]}
}
}
我试图了解 ServerSide 中的回滚功能 JavaScript。我是 运行 下面的 JavaScript 查询,这是我从 xdmp.rollback()
的 MarkLogic 文档中得到的,我得到的错误是
[javascript] TypeError: Cannot read property 'result' of null.
查询:
declareUpdate({explicitCommit: true});
xdmp.documentInsert("/docs/first.json", {"first": 1});
xdmp.documentInsert("/docs/second.json", {"second": 2});
xdmp.rollback();
结果:
[javascript] TypeError: Cannot read property 'result' of null
而我尝试了 运行 XQuery 回滚函数 xdmp:rollback()
,它工作正常而不会引发错误。这是什么原因?
代码示例确实有效。如果执行它,您会注意到那些文档没有插入到数据库中。您可以添加一些诊断 xdmp.log()
消息并在 ErrorLog 中查找它们以证明它正在执行您的代码。
当通过查询控制台执行代码时,eval 执行的结果似乎不是 complete/expected 有效负载。
When a transaction is rolled back, the current statement immediately terminates, updates made by any statement in the transaction are discarded, and the transaction terminates.
The result of a statement terminated with
xdmp:rollback
is always the empty sequence.
因此,评估响应不是返回带有 result
属性 的响应对象,而是 null
,并尝试访问 result
属性 导致异常冒泡。
如果执行以下代码:
declareUpdate({explicitCommit: true});
xdmp.commit();
向查询控制台返回如下响应:
{
"elapsedCurrent":0.605,
"elapsedDiff":-0.307,
"isSequence":false,
"resultCount":1,
"results":[{"type":"Null", "result":"null"}]
}
但是当从 xdmp.rollback()
页面执行示例代码时,会返回以下响应,您看到的是查询控制台结果面板中显示的 errorcode
:
{
"error":{
"evalinfo":"query evaluated as JavaScript",
"errorcode":"[javascript] TypeError: Cannot read property 'result' of null",
"stacktrace":{"stack":[]}
}
}