【发布时间】:2020-07-09 01:32:56
【问题描述】:
我正在尝试从 CommonJS (.cjs) 迁移到 ES Modules (.mjs)。为此,我更换了:
const bodyParser = require("body-parser");
与
import * as bodyParser from "body-parser";
在 ES 模块中。
现在,当尝试执行代码时:
app.use(bodyParser.urlencoded({
param: val
}));
我收到一个错误:
app.use(bodyParser.urlencoded({
TypeError: bodyParser.urlencoded 不是函数
at file:///…/app.mjs:44:20 at ModuleJob.run (internal/modules/esm/module_job.js:110:37) at async Loader.import (internal/modules/esm/loader.js:176:24)
我搜索了这个错误,大多数答案都提到需要body-parser 组件。但就我而言,我已经这样做了:
import * as bodyParser from "body-parser";
知道为什么在导入模块后我仍然会遇到这样的问题吗?
这可能是由于 ES 模块导入的异步性质造成的吗?
也许,我应该等到所有导入的模块都真正导入了吗?
【问题讨论】:
标签: javascript node.js es6-promise es6-modules es6-module-loader