从 MarkLogic 控制台导入 JS 模块
Importing JS modules from MarkLogic console
(请原谅我的术语错误,因为我是 JS 和 MarkLogic 的新手,但如果我哪里错了请纠正我。)
我想使用 MarkLogic qconsole(服务器端 JS)从外部模块 bignumber.js
导入一个 BigNumber
对象(或者它是一个 class,构造..)。
这是他们 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
- 默认用户: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/
但没有结果。
正如评论中 MadsHansen 指出的那样 - 文档的名称中应插入前导斜杠。
我只想澄清下一部分:
- 使用
require
导入适用于 .js
个文件
const BigNumber = require('/bignumber.js');
- 这种导入方式适用于
.mjs
个文件
import BigNumber from "/bignumber.mjs";
import { BigNumber } from "/bignumber.mjs";
.js
和 .mjs
文件都应该插入到模块数据库中,并在主数据库中使用。
我用这些行加载了文件:
xdmp.documentLoad('path/bignumber.js', {'uri': '/bignumber.js'});
xdmp.documentLoad('path/bignumber.mjs', {'uri': '/bignumber.mjs'});
(请原谅我的术语错误,因为我是 JS 和 MarkLogic 的新手,但如果我哪里错了请纠正我。)
我想使用 MarkLogic qconsole(服务器端 JS)从外部模块 bignumber.js
导入一个 BigNumber
对象(或者它是一个 class,构造..)。
这是他们 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
- 默认用户: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/
但没有结果。
正如评论中 MadsHansen 指出的那样 - 文档的名称中应插入前导斜杠。
我只想澄清下一部分:
- 使用
require
导入适用于.js
个文件
const BigNumber = require('/bignumber.js');
- 这种导入方式适用于
.mjs
个文件
import BigNumber from "/bignumber.mjs";
import { BigNumber } from "/bignumber.mjs";
.js
和 .mjs
文件都应该插入到模块数据库中,并在主数据库中使用。
我用这些行加载了文件:
xdmp.documentLoad('path/bignumber.js', {'uri': '/bignumber.js'});
xdmp.documentLoad('path/bignumber.mjs', {'uri': '/bignumber.mjs'});