Node.js ExpressJs返回错误'ERR\u MODULE\u NOT\u FOUND',如果我导入的文件没有'js'扩展名

Node.js ExpressJs返回错误'ERR\u MODULE\u NOT\u FOUND',如果我导入的文件没有'js'扩展名,node.js,express,ecmascript-6,es6-modules,Node.js,Express,Ecmascript 6,Es6 Modules,我使用ES6构建了一个expressJs应用程序,但出现以下错误: (node:4132) ExperimentalWarning: The ESM module loader is experimental. internal/modules/run_main.js:54 internalBinding('errors').triggerUncaughtException( ^ Error [ERR_MODULE_NOT_F

我使用ES6构建了一个expressJs应用程序,但出现以下错误:

(node:4132) ExperimentalWarning: The ESM module loader is experimental.
internal/modules/run_main.js:54
    internalBinding('errors').triggerUncaughtException(
                              ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'E:\wamp64\www\myDemos\nodeJs\expressJsExample\config\app' imported from E:\wamp64\www\myDemos\nodeJs\expressJsExample\server.mjs
←[90m    at finalizeResolution (internal/modules/esm/resolve.js:255:11)←[39m
←[90m    at moduleResolve (internal/modules/esm/resolve.js:603:10)←[39m
←[90m    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:644:13)←[39m
←[90m    at Loader.resolve (internal/modules/esm/loader.js:94:40)←[39m
←[90m    at Loader.getModuleJob (internal/modules/esm/loader.js:240:28)←[39m
←[90m    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:42:40)←[39m
←[90m    at link (internal/modules/esm/module_job.js:41:36)←[39m {
  code: ←[32m'ERR_MODULE_NOT_FOUND'←[39m
}
[nodemon] app crashed - waiting for file changes before starting...
server.js

import http from 'http';
import app from './config/app';

const server = http.Server(app);
server.listen(3000, () => {
       return true;
});
import express from 'express';
const app = express();

export default app;
app.js

import http from 'http';
import app from './config/app';

const server = http.Server(app);
server.listen(3000, () => {
       return true;
});
import express from 'express';
const app = express();

export default app;

示例应用程序在
https://github.com/msthakur08/express-js-example
URL。示例文件导入时带有“.js”存在,但我希望导入不带“.js”存在的文件。

例如
导入“express”
解析为
/node\u modules/express/index.js

在您的情况下,创建一个名为app的文件夹,其中包含index.js。之后,您可以使用以下行导入或要求它:

import app from './app/'

我用这种方法解决了这个问题:-

当您在节点上使用Es6导入/导出功能时,需要导入扩展名为“.mjs”的模块,然后在导入之前将模块重命名为“
”/path to/app.js to./path to/app.mjs

把你的代码改成这个

import http from 'http';
import app from './config/app.mjs'; //.mjs extension is necessary

const server = http.Server(app);
server.listen(3000, () => {
       return true;
});
并使用
节点运行app.js——实验模块app.js


有关此问题的更多信息,您可以通过以下方式解决此问题:

将node
--es模块说明符resolution=node
添加到node命令中


完整命令:
node--experimentalmodules--es module specifier resolution=node app.js

我遇到了同样的问题,当我从package.json中删除
类型:“module”
时问题得到了解决。您可以将其添加到您的包json中

“脚本”:{
“开始”:“nodemon--实验模块--es模块说明符解析=节点索引.js”
},

如果有人仍在搜索,我在使用节点版本15时出现此错误,我在导入文件时没有添加
.js
文件扩展名,从而修复了我的问题。

我在使用ES6。嘿,我添加了此项,但没有任何帮助。错误是什么?请确保使用适当的入口点名称(节点:4132)实验警告:ESM模块加载程序是实验性的。内部/modules/run_main.js:54 internalBinding('errors').triggerUncaughtException(^Error[errr_MODULE\u NOT\u FOUND]:找不到模块选中此项,