Я пытаюсь перейти с Common JS (. cjs) на модули ES (.m js). Для этого я заменил:
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?
Возможно, следует подождать, пока все импортированные модули действительно будут импортированы?