在 marklogic 中找不到来自不同数据库的模块
cannot find a module from a different database in marklogic
好的,我有一个 MarkLogic 9.0.2 数据库,我在其中部署了两个应用程序。比方说 A 和 B。现在我想 运行 从 A 到 B 里面的一些代码,我们可以用 xdmp.eval()
来做到这一点,但是我想要 运行 的代码需要找到一个部署的模块在 B 的模块数据库中。
我似乎无法正常工作。
数据库 B 中的代码 运行 有效:
declareUpdate();
var prj = require('/root/lib/project-lib.xqy');
prj.createProject('giraffe', 'A project about giraffes');
在模块库中找到并运行s createProject 函数...
现在从数据库 A 我尝试 运行 通过 xdmp.eval()
像这样:
declareUpdate();
var options = { "isolation" : "different-transaction",
"database" : xdmp.database("data-hub-FINAL"),
"modules" : xdmp.database("data-hub-MODULES")
}
xdmp.eval("declareUpdate();var prj = require('/root/lib/project-lib.xqy');prj.createProject('fromcluey giraffe', 'A project about giraffes from cluey');"
, options);
但给我:
[javascript] XDMP-MODNOTFOUND: declareUpdate();var prj = require('/root/lib/project-lib.xqy');prj.createProject('fromcluey giraffe', 'A project about giraffes from cluey'); -- Module /root/lib/project-lib.xqy not found
谁能告诉我如何从 A 中找到 project-lib.xqy
模块?
文档权限是我首先想到的,它也适用于模块、模式、触发器等,而不仅仅是文档。特权次之。模块根肯定也很重要。
但是,上面的 xdmp.eval
中有一个简单的错字,这是这里最大的罪魁祸首:函数有 3 个参数,而不是 2 个。并且 options
是第 3 个,而不是第二个。
应该是:xdmp:eval("...", null, options)
.
HTH!
好的,我有一个 MarkLogic 9.0.2 数据库,我在其中部署了两个应用程序。比方说 A 和 B。现在我想 运行 从 A 到 B 里面的一些代码,我们可以用 xdmp.eval()
来做到这一点,但是我想要 运行 的代码需要找到一个部署的模块在 B 的模块数据库中。
我似乎无法正常工作。
数据库 B 中的代码 运行 有效:
declareUpdate();
var prj = require('/root/lib/project-lib.xqy');
prj.createProject('giraffe', 'A project about giraffes');
在模块库中找到并运行s createProject 函数...
现在从数据库 A 我尝试 运行 通过 xdmp.eval()
像这样:
declareUpdate();
var options = { "isolation" : "different-transaction",
"database" : xdmp.database("data-hub-FINAL"),
"modules" : xdmp.database("data-hub-MODULES")
}
xdmp.eval("declareUpdate();var prj = require('/root/lib/project-lib.xqy');prj.createProject('fromcluey giraffe', 'A project about giraffes from cluey');"
, options);
但给我:
[javascript] XDMP-MODNOTFOUND: declareUpdate();var prj = require('/root/lib/project-lib.xqy');prj.createProject('fromcluey giraffe', 'A project about giraffes from cluey'); -- Module /root/lib/project-lib.xqy not found
谁能告诉我如何从 A 中找到 project-lib.xqy
模块?
文档权限是我首先想到的,它也适用于模块、模式、触发器等,而不仅仅是文档。特权次之。模块根肯定也很重要。
但是,上面的 xdmp.eval
中有一个简单的错字,这是这里最大的罪魁祸首:函数有 3 个参数,而不是 2 个。并且 options
是第 3 个,而不是第二个。
应该是:xdmp:eval("...", null, options)
.
HTH!