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

Node.js主文件放src目录运行npm start报Cannot find module如何解决

报错原因

执行npm start触发Cannot find module报错的核心原因是启动脚本路径配置错误:
你当前package.json中start脚本写的是nodemon 'server.js',nodemon执行时默认从项目根目录(即D:\utalk-project\server\)查找目标文件,但你的server.js存放在src目录下,根目录不存在对应文件自然触发报错。此外你配置的main字段开头多了前置斜杠,路径写法不符合Node.js的解析规则,也会引发潜在的路径识别问题。

修复方案

按以下步骤修改配置即可在保留server.js存于src文件夹的前提下正常启动服务:

  • 修改package.json中的两处配置:
    • 修正main字段的路径,去掉开头多余的斜杠
    • 修正start脚本的执行路径,指向src目录下的server.js,同时去掉路径上多余的单引号
      修改后的核心配置段如下,其余依赖配置保持原样不需要改动:
    {
      "name": "server",
      "version": "1.0.0",
      "description": "",
      "main": "src/server.js",
      "type": "module",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "nodemon src/server.js"
      },
      // dependencies、devDependencies 原有内容保持不变
    }
    
  • 检查server.js内的引用路径:你当前写的./models/router.js、./config/connectDB.js都是以server.js所在的src目录为相对起点,和目录结构匹配,不需要额外修改。
  • 回到项目根目录重新执行npm start,服务即可正常启动。

额外提示:你项目中安装了sequelize-cli,后续如果使用cli做迁移、生成种子文件,记得在根目录新建.sequelizerc配置文件,指定config、models、migrations、seeders的路径都指向src下的对应目录,避免cli默认从根目录查找文件触发新的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 08:46:07