【发布时间】:2021-07-25 22:29:28
【问题描述】:
(请原谅我的术语错误,因为我是 JS 和 MarkLogic 的新手,但如果我在某处有错误,请纠正我。)
我想使用 MarkLogic qconsole(服务器端 JS)从外部模块 bignumber.js 导入一个 BigNumber 对象(或者它是一个类,构造..)。
这是他们 github 中建议的方式,但它适用于 Node.js 而不是 SSJS。 https://github.com/MikeMcl/bignumber.js/
const BigNumber = require('bignumber.js');
import BigNumber from "bignumber.js";
import { BigNumber } from "bignumber.js";
到目前为止,我的设置如下所示:
我已经打开了 HTTP 服务器
- 端口:8111
- 根目录:/
- 模块:my-db-modules
- 数据库 my-db
- 默认用户:admin
我将bignumber.js 文档插入到my-db-modules 中,其中包含以下几行:
declareUpdate();
xdmp.documentLoad('path/bignumber.js', {'uri': 'bignumber.js'});
我也插入了bignumber.mjs 文件。
当我尝试从 .js 文件导入 BigNumber 时,我得到 'Module bignumber.js not found'
如果我尝试从.mjs 文件导入它,我会得到 'Document is not of executable mimetype。 URI:bignumber.mjs'
我找到了关于如何使用模块 db 的部分:https://docs.marklogic.com/guide/admin/databases#id_38484
但我不知道我是否做对了,因为我尝试将我的 HTTP 服务器的根更改为 http://marklogic.com/,但没有任何结果。
【问题讨论】:
-
尝试使用前导斜杠
/bignumber.js或/bignumber.sjs插入模块。我希望它可以与不以前导斜杠开头的模块 URI 一起使用,但重现了您的问题并发现它确实 import 并且当我使用前导斜杠时 require 会起作用,因此可能能够解决该分辨率问题. -
@MadsHansen 哇,真是太愚蠢了……非常感谢!
-
缺少前导 / 的罪魁祸首是 MarkLogic 将始终认为您正在尝试要求相对路径,如果您不是从同级文件中调用它,这很可能会失败..
-
你们两个知道任何 MarkLogic 社区吗?我尝试搜索 gitter,但没有任何结果
标签: javascript marklogic serverside-javascript