You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express.js采用ES Module开发时导入路由提示找不到模块错误

问题原因

Node.js 原生 ES 模块(也就是你在 package.json 中配置 "type": "module" 启用的模块规范)要求导入本地自定义模块时,必须明确指定完整的文件扩展名,不能像 CommonJS 规范那样自动补全 .js 后缀。你当前导入路由的写法省略了 .js,Node.js 会将 ./routes/auth 识别为目录而非文件,查找对应目录下的入口文件失败就会抛出找不到模块的报错。

修复方法

修改 app.js 中的路由导入语句,补全 .js 后缀即可:

// 改前
import authRoutes from "./routes/auth";
// 改后
import authRoutes from "./routes/auth.js";

可选拓展(不推荐生产环境使用)

如果你希望保留 CommonJS 风格的省略扩展名写法,可以在启动服务时添加实验性参数:

node --experimental-specifier-resolution=node app.js

该功能属于 Node.js 实验特性,存在行为变更风险,生产环境建议优先使用明确补全扩展名的写法。

内容的提问来源于stack exchange,提问作者Darshan B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 09:42:02