Node+ExpressRouter -> CommonJS 到 ESM -> 导入路由 -> 错误 [ERR_MODULE_NOT_FOUND]:找不到模块

问题描述 投票:0回答:2

将节点引擎更新到 14.x 并使用 ESM 而不是 CommonJS 后,我找不到错误:exampleroute.js

import express from "express";
const router = express.Router();
router.get("/exampleroute", async (req, res) => {
  console.log('......')
})
export default router;

服务器.js

import http from "http";
import express from "express";
import exampleroute from "./routes/exampleroute";
const server = express();
server.use("/exampleroute", exampleroute);
const httpServer = http.createServer(server);
const httpPort = 8080
httpServer.listen(httpPort, () => console.log(`server is running @ port: ${httpPort}`));

导致:错误 [ERR_MODULE_NOT_FOUND]:找不到模块

我做错了什么?

node.js migration express-router es6-modules
2个回答
1
投票

尝试使用:

import exampleroute from "./routes/exampleroute.js";

参考。 无法将“mysql2/promise”导入 Node.js 13 / 14 上的 ES 模块(MJS)


0
投票

当您使用 ESM 而不是 CommonJS 时,您可以通过使用相对路径和显式文件扩展名来区分目录和包的导入。 在你的情况下尝试使用

import exampleroute from "./routes/exampleroute.js"
© www.soinside.com 2019 - 2024. All rights reserved.