Imported CommonJS (CJS) into ES Module (MJS) leads to "TypeError: module is not a function" error

Imported CommonJS (CJS) into ES Module (MJS) leads to "TypeError: module is not a function" error

我正在尝试从 CommonJS (.cjs) 迁移到 ES 模块 (.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 is not a function

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 模块导入的异步性质吗?
或许,我是不是应该等到所有导入的模块都真正导入了?

尝试使用:

import bodyParser from "body-parser";