gpt4 book ai didi

javascript - ESM 模块的快速验证器用法

转载 作者:搜寻专家 更新时间:2023-10-31 23:45:21 28 4
gpt4 key购买 nike

我尝试使用 --experimental-modules 标志在 Node.js v8.7.0 中使用此语法导入 ESM 模块:

import { check, validationResult } from 'express-validator/check';
import { matchedData, sanitize } from 'express-validator/filter';

但是我收到以下错误:

(node:29028) ExperimentalWarning: The ESM module loader is experimental.
SyntaxError: The requested module does not provide an export named 'check'
at checkComplete (internal/loader/ModuleJob.js:86:27)
at moduleJob.linked.then (internal/loader/ModuleJob.js:69:11)
at <anonymous>

使用 --experimental-modules 标志打开 ESM 模块的正确用法是什么?

我还用 @std/esm 包进行了测试。它只适用于我打开 cjs: true

最佳答案

发生这种情况是因为在 Node.js 中,通过 import 导入的 CommonJS 模块只有一个默认的 export*。

如果你导入的模块不是 ES 模块(express-validator 就是这种情况),那么你所能做的就是这样:

import checkAPIs from 'express-validator/check';
import filterAPIs from 'express-validator/filter';

const { check, validationResult } = checkAPIs;
const { matchedData } = filterAPIs;

* 来源:https://medium.com/the-node-js-collection/an-update-on-es6-modules-in-node-js-42c958b890c

关于javascript - ESM 模块的快速验证器用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46927589/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com