在marklogic中执行xdmp.spawn函数,如下所示:
var abc = "foo"
xdmp.spawn("/oneplusone.sjs", (xs.QName("abc"), "foo").Object,{result: true})错误:
[javascript] JS-JAVASCRIPT: fn.count(Sequence()) -- Error running JavaScript request: ReferenceError: abc is not definedoneplusone.sjs是我的模块数据库中的一个模块,它只返回变量"abc“(它是作为外部传递的字符串"foo”)的值。
你能帮我解决这个问题吗?另外,请给出一个详细的示例,说明如何使用xdmp.spawn以及如何将第二个参数作为对象传递。
发布于 2018-01-29 21:30:38
下面的代码片段可以正常工作:
var name = (xs.QName("abc"), "foo")
xdmp.spawn("/oneplusone.sjs", name.Object,{result: true})问题是被称为(/oneplusone.sjs)的模块只有一行代码,即变量abc。这适用于Xquery,但在Javascript中,他们希望在被调用的模块中声明变量。另外,请让我帮助我在被调用的模块中获取变量的值,因为现在它是作为对象传递的。
发布于 2018-01-30 00:12:03
该函数需要一个JSON对象,其键引用变量名。在XQuery代码中调用带名称空间的变量有点困难,但这不适用于服务器端JavaScript。要做到这一点,你可以这样做:
var abc = "foo"
xdmp.spawn("/oneplusone.sjs", { "abc": abc }, {result: true})如果您最终想要调用XQuery代码,您可能需要xdmp.keyFromQName。
哈!
https://stackoverflow.com/questions/48501814
复制相似问题