Marklogic Roxy:从app_specific.rb调用javascript模块

Marklogic Roxy:从app_specific.rb调用javascript模块,marklogic,roxy,Marklogic,Roxy,我有一个Marklogic 9项目,我正在用Roxy进行配置。 我一直在遵循这些示例: 基本上,我有一个服务器端JS函数,我想在部署内容后调用它。我有这样的想法: #然后定义新方法 def deploy_content # you can optionally call the original original_deploy_content # do your stuff here execute_query(%Q{ xquery versio

我有一个Marklogic 9项目,我正在用Roxy进行配置。 我一直在遵循这些示例:

基本上,我有一个服务器端JS函数,我想在部署内容后调用它。我有这样的想法:

#然后定义新方法

  def deploy_content
    # you can optionally call the original
    original_deploy_content

    # do your stuff here
    execute_query(%Q{
      xquery version "1.0-ml";
      xdmp:javascript-eval('var process = require("/ingestion/process.sjs"); process.postDeployContent();')
    },
    :db_name => @properties["ml.app-name"] + "-content")

  end
这里调用的xquery在通过查询控制台执行时计算结果良好。但当我调用ml local deploy content时,会出现以下错误:

ERROR: 500 "Internal Server Error"
ERROR: <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>500 Internal Server Error</title>
    <meta name="robots" content="noindex,nofollow"/>
    <link rel="stylesheet" href="/error.css"/>
  </head>
  <body>
    <span class="error">
      <h1>500 Internal Server Error</h1>
      <dl>
        <dt>XDMP-MODNOTFOUND: var process = require("/ingestion/process.sjs"); process.postDeployContent(); -- Module /ingestion/process.sjs not found</dt>
        <dd></dd>
        <dt>in [anonymous], at 1:14 [javascript]</dt>
        <dd></dd>
        <dt>at 3:6,
in xdmp:eval("var process = require(&amp;quot;/ingestion/process.sjs&amp;quot;); proce...") [javascript]</dt>
        <dd></dd>
        <dt>in /eval, at 3:6 [1.0-ml]</dt>
        <dd></dd>
      </dl>
    </span>
  </body>
</html>
错误:500“内部服务器错误”
错误:
500内部服务器错误
500内部服务器错误
XDMP-MODNOTFOUND:var process=require(“/insetation/process.sjs”);process.postDeployContent();--找不到模块/摄取/进程.sjs
在[anonymous]中,1:14[javascript]
3点6分,
在xdmp:eval(“var process=require(";/inspection/process.sjs);“proce…”)中[javascript]
在3:6[1.0-ml]时的进/排气量
为什么从app_specific.rb通过xquery运行时找不到模块


或者。。。有没有更好的方法从这里调用JS模块函数。抱歉,我对xquery方面不太熟悉,所以我只调用了JS函数。

您需要使用
:app\u name
而不是
:db\u name
,并传入一个应用服务器的名称,该服务器具有文档数据库和模块数据库的正确组合。否则,代码将根据App Services服务器进行评估,该服务器将根据现成的,通常是空文档和模块数据库运行

如果您可以直接提供SJS代码就好了,并且只需要对Roxy进行有限的更改。添加此票证的权重以提高其优先级:


您需要使用
:app_name
而不是
:db_name
,并传入具有文档数据库和模块数据库正确组合的应用程序服务器的名称。否则,代码将根据App Services服务器进行评估,该服务器将根据现成的,通常是空文档和模块数据库运行

如果您可以直接提供SJS代码就好了,并且只需要对Roxy进行有限的更改。添加此票证的权重以提高其优先级:


谢谢!Re:github票,我对github不太熟悉,我如何“增加这张票的重量”?我想我能做的就是对它发表评论?你需要登录。之后,你可以发表评论,或者用笑脸标记问题或评论。如果您能描述您的需求,请发表评论。谢谢!Re:github票,我对github不太熟悉,我如何“增加这张票的重量”?我想我能做的就是对它发表评论?你需要登录。之后,你可以发表评论,或者用笑脸标记问题或评论。如果您能描述您的需求,请发表评论。。