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

MERN Stack报错:Cannot find module '../models/workoutModel.js'求助

MERN Stack 中 Mongoose 模型导入提示“找不到模块”的解决方案

问题根源

错误核心是文件路径不匹配:
从server/routes/workouts.js中使用../models/workoutModel.js时,Node.js会从server目录下查找models文件夹,但你的models实际在MERN项目根目录(和server同级),而非server内部,因此找不到模块。

文件结构回顾

MERN/
├── client/
├── models/
│   └── workoutModel.js
└── server/
    ├── routes/
    │   └── workouts.js
    ├── server.js
    ├── node_modules/
    └── ...其他后端文件

两种解决方案

方案1:修正导入路径

直接修改server/routes/workouts.js中的导入语句,从当前目录往上走两层到项目根目录,再访问models:

const express = require('express');
const router = express.Router();
// 修正后的路径:../../ 回到MERN根目录
const Workout = require('../../models/workoutModel.js');

// 后续路由代码保持不变...

方案2:调整项目结构(更推荐)

将models文件夹移动到server目录下,让所有后端相关文件统一归类,原导入路径即可生效:
调整后的文件结构:

MERN/
├── client/
└── server/
    ├── models/
    │   └── workoutModel.js
    ├── routes/
    │   └── workouts.js
    ├── server.js
    └── ...其他后端文件

此时原导入语句const Workout = require('../models/workoutModel.js')无需修改即可正常工作。

额外检查项

  • 确认文件名拼写完全一致(注意大小写,比如workoutModel.js不要写成WorkoutModel.js)
  • 确认models文件夹和workoutModel.js确实存在于对应路径下

内容的提问来源于stack exchange,提问作者Miranda Weathers

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:24:41