我通过 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...
如果我使用 import app from './config/app.js';
然后工作,但如果我使用 import app from './config/app';
然后返回上述错误。
以下是我的代码:
包.json
{
"name": "ExpressJsExample",
"version": "1.0.0",
"description": "Express Js Example",
"main": "server.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon server.js"
},
"author": "Mukesh Singh Thakur",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"chalk": "^4.0.0",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"http": "0.0.1-security",
"http-errors": "^1.7.3",
"jsonwebtoken": "^8.5.1",
"nodemon": "^2.0.2",
"pg": "^8.0.0",
"request": "^2.88.2",
"sequelize": "^5.21.6"
},
"devDependencies": {
"sequelize-cli": "^5.5.1"
}
}
服务器.js
import http from 'http';
import app from './config/app';
const server = http.Server(app);
server.listen(3000, () => {
return true;
});
应用程序.js
import express from 'express';
const app = express();
export default app;
示例应用程序在 https://github.com/msthakur08/express-js-example
URL 中可用。示例文件导入时存在“.js”,但我想导入不存在“.js”的文件。
原文由 Mukesh Singh Thakur 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以通过以下方式解决此问题:
将节点
--es-module-specifier-resolution=node
添加到您的节点命令。完整命令:
node --experimental-modules --es-module-specifier-resolution=node app.js