Fan*_* Li 2 javascript marklogic
MarkLogic v10 引入了对原生 JavaScript 模块(ECMAScript 模块)的支持。
https://docs.marklogic.com/guide/jsref/modules
但是我不确定如何在资源扩展中导入这些模块。例如:
'use strict';
import * as jsearch = from '/MarkLogic/jsearch.mjs';
function get(context, params) {
// omitted
};
exports.GET = get;
Run Code Online (Sandbox Code Playgroud)
会导致以下错误:
JS-JAVASCRIPT: import * as jsearch = from '/MarkLogic/jsearch.mjs'; -- 运行 JavaScript 请求时出错:SyntaxError: Unexpected token *;
同样,导入自定义模块如import { foo } from '/bar.mjs'导致类似的错误:Unexpected token { .
谢谢!
你有一个小的语法错误。=从导入语句中删除:
import * as jsearch from '/MarkLogic/jsearch.mjs';
Run Code Online (Sandbox Code Playgroud)
但是,看起来您正在构建自定义 REST 扩展。自定义 REST 扩展不能使用 mjs 模块。由于资源服务扩展是由 REST API 为当前请求动态导入的,因此 REST API 无法获得静态缓存的 JavaScript *.mjs 模块库的好处。
您可以考虑通过数据服务公开功能,它可以导入 mjs 模块。查看在 Node.js 中创建数据服务和开发人员操作以获取更多信息。