Node.js导入自定义apiEndpoints.js模块报Cannot find module错误如何解决
问题原因
你遇到的模块找不到错误是Node.js ES模块规范的特性导致的,具体原因如下:
- 你的
package.json中配置了"type": "module",说明项目全程使用ES模块化规范,该规范下引入本地自定义.js模块时必须显式标注文件扩展名,你当前在Server.js中的引入代码省略了.js后缀,Node.js无法识别对应的文件。 - 路径层级本身没有问题:
Server.js存放在项目根目录,apiEndpoints.js存放在routes子目录下,相对路径./routes/apiEndpoints的层级是正确的,仅缺少扩展名。
解决方法
将Server.js中的引入代码修改为:
import apiEndpoints from "./routes/apiEndpoints.js";
修改后重启服务即可正常加载模块。
补充注意:如果后续引入
.json、.node等其他类型的本地文件,也需要按照ES模块规范显式标注对应扩展名,不能沿用CommonJS规范下省略扩展名的写法。
内容的提问来源于stack exchange,提问作者undevable
相关产品推荐
相关产品推荐

