【发布时间】:2014-06-12 09:20:08
【问题描述】:
我有一个问题让我发疯了两天。我已经在 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,实际上我没有找到 node_modules/mongodb/lib/mongodb/collection.js 文件所需的“batch”文件夹和 unordered.js 文件。
我尝试卸载并重新安装 mongodb。批处理文件夹和 unordered.js 确实出现了。但错误仍然存在。如果我在 Heroku 上重新部署,批处理文件夹又会丢失。
我完全不知道现在该尝试什么,我非常感谢一些帮助。谢谢!
编辑:
这是我的 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"
}
}
【问题讨论】:
-
好的,我找到了一个肮脏的解决方案。我从我的 gitignore 中删除了我的 node_modules,然后我直接将我的模块推送到了 Heroku。这可能不是最好的解决方案,但它确实有效......