找不到模块'./collection/batch/unordered' – 在Heroku上的节点JS

我有一个问题,现在让我疯狂了两天。 我已经在heroku上部署了一个运行良好的节点应用程序。 前两天,我做了我的模块更新(我不是100%确定它是直接链接到我的问题),因为我不断收到我的日志上的这条消息:

Error: Cannot find module './collection/batch/unordered' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/app/node_modules/mongodb/lib/mongodb/collection.js:21:17) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) Failed to load c++ bson extension, using pure JS version 

本地,该应用程序完美的作品。

我试图将版本改回原来的样子,但没有成功。

所以我检查了node_modules / mongodb / lib / mongodb,实际上我没有findnode_modules / mongodb / lib / mongodb / collection.js文件所需的“batch”文件夹和unordered.js文件。

我试图卸载并重新安装MongoDB。 batch file夹和unordered.js确实出现。 但是错误依然存在。 如果我在Heroku上部署,batch file夹又丢失了。

我完全不知道现在该怎么办,我会深表感谢。 谢谢 !

编辑:

这是我的packages.json:

  { "name": "Killerapp", "version": "0.0.1", "private": true, "scripts": { "start": "node app.js" }, "engines": { "node": "0.10.26" }, "dependencies": { "express": "3.5.1", "ejs" : "~0.8.5", "mongodb": "1.4.2", "mongoose": "3.8.8", "connect-mongo": "*", "passport" : "~0.1.17", "connect-flash" : "~0.1.1", "bcrypt-nodejs" : "latest", "moment" : "latest" } } 

是否有一个原因,你已经硬编码在你的依赖mongodb版本? 我相信mongoose将拉入正确的版本…

尝试从你的package.json中删除mongodb ,从git中删除你的node_modules ,然后推送到heroku。