express-validator使用ESM模块
我尝试使用--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模块的正确用法是什么?
我也testing过@std/esm
包。 它只适用于我转cjs: true
。
发生这种情况的原因是,在Node.js中,通过import
CommonJS模块只有一个默认导出*。
如果你导入的模块不是ES模块(这是快速validation器的情况),那么你所能做的就是这样的:
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