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";
我正在尝试从 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";