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

Node.js引入本地模块报错:找不到‘./game’模块问题排查

解决Node.js引入本地模块时“Cannot find module './game'”的错误

你遇到的问题根源很清晰——模块路径引用错误!

先理清楚你的文件结构:

  • app.js 位于项目根目录 /FantasyCricket/app.js
  • game.js 位于 /FantasyCricket/public/javascript/game.js

你在app.js里写的require("./game"),是让Node.js在app.js所在的根目录下查找game.js,但你的game.js实际在public/javascript子目录里,自然会触发MODULE_NOT_FOUND错误。

直接修复方案

把app.js里的模块引入语句改成正确的相对路径即可:

// 原来的错误路径
// const game = require("./game");

// 修正后的正确路径
const game = require("./public/javascript/game");

Node.js会自动识别.js后缀,所以不用写全./public/javascript/game.js也能正常加载。

额外需要注意的细节

  • 路径大小写:虽然Windows系统不区分文件名大小写,但建议保持代码里的路径和实际文件名完全一致,避免后续部署到Linux/macOS等区分大小写的系统时出现意外问题。
  • 文件名拼写:确认你的文件确实叫game.js,没有写成Game.js或者games.js这类拼写错误。
  • 关于game.js的代码逻辑:这里有个隐藏的坑——你在game.js里使用了jQuery的$和DOM选择器$(".card > button"),这是浏览器端专属的逻辑!Node.js环境里没有浏览器的document对象,也默认不包含jQuery,就算模块引入成功,这段代码运行时也会报错。

正确的做法是把DOM操作相关的代码放到前端页面(比如你的PlayGame.ejs)中,Node.js模块只用来处理后端逻辑(比如数据存储、接口请求等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:16:40