Node.js引入本地模块报错:找不到‘./game’模块问题排查
解决Node.js引入本地模块时“Cannot find module './game'”的错误
你遇到的问题根源很清晰——模块路径引用错误!
先理清楚你的文件结构:
app.js位于项目根目录/FantasyCricket/app.jsgame.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
相关产品推荐
相关产品推荐

