javascript - 如何在 MarkLogic 10 的资源扩展中导入 JavaScript 模块

标签 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;

会导致以下错误:

JS-JAVASCRIPT: import * as jsearch = from '/MarkLogic/jsearch.mjs'; -- Error running JavaScript request: SyntaxError: Unexpected token *;

类似地,导入自定义模块,例如 import { foo } from '/bar.mjs' 会导致类似的错误:Unexpected token {

谢谢!

最佳答案

你有一个小的语法错误。从导入语句中删除 =:

import * as jsearch from '/MarkLogic/jsearch.mjs';

但是,看起来您正在构建自定义 REST 扩展。自定义 REST 扩展不能使用 mjs 模块。由于资源服务扩展是由 REST API 为当前请求动态导入的,因此 REST API 无法获得静态缓存的 JavaScript *.mjs 模块库的好处。

您可以考虑通过数据服务公开功能,它可以导入 mjs 模块。查看Creating Data Services and Developer Actions在 Node.js 中获取更多信息。

关于javascript - 如何在 MarkLogic 10 的资源扩展中导入 JavaScript 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60459123/

相关文章:

xquery - 按顺序阅读文件

marklogic - 如何在文档属性中搜索?

javascript - 垫分页器没有显示

javascript - Laravel 5.0 : Implementation of Notification System(Facebook, Twitter 和 stackoverflow)

azure - MarkLogic - 森林数据文件夹和 Azure Blob

json - Marklogic 中用于 JSON 文档的日期格式

Marklogic 8 Windows 7 安装后登录

javascript - 使用 JavaScript 跟踪像素

javascript - 如何仅调用父元素的jquery函数onclick

javascript - AngularJS 嵌套 ng-repeat