找不到模块'mongdb'heroku mongoskin

时间:2015-10-21 15:14:46

标签: bash mongodb heroku

我的应用程序正在本地查找,但在部署到heroku时,无法找到我的一个模块。我使用.gitignore文件忽略node_modules文件夹,并允许heroku安装正确的依赖项。当我运行heroku open命令并使用heroku logs --tail搜索日志时,它会显示此错误。

我得到的错误是:

2015-10-21T14:42:58.415140+00:00 app[web.1]: Error: Cannot find module 'mongodb'
2015-10-21T14:42:58.415141+00:00 app[web.1]:     at Function.Module._resolveFilename (module.js:336:15)
2015-10-21T14:42:58.415142+00:00 app[web.1]:     at Function.Module._load (module.js:278:25)
2015-10-21T14:42:58.415142+00:00 app[web.1]:     at Module.require (module.js:365:17)
2015-10-21T14:42:58.415143+00:00 app[web.1]:     at require (module.js:384:17)
2015-10-21T14:42:58.415144+00:00 app[web.1]:     at Object.<anonymous> (/app/node_modules/mongoskin/lib/index.js:14:13)
2015-10-21T14:42:58.415145+00:00 app[web.1]:     at Module._compile (module.js:460:26)
2015-10-21T14:42:58.415145+00:00 app[web.1]:     at Object.Module._extensions..js (module.js:478:10)
2015-10-21T14:42:58.415146+00:00 app[web.1]:     at Module.load (module.js:355:32)
2015-10-21T14:42:58.415146+00:00 app[web.1]:     at Function.Module._load (module.js:310:12)
2015-10-21T14:42:58.415147+00:00 app[web.1]:     at Module.require (module.js:365:17)
2015-10-21T14:42:59.337084+00:00 heroku[web.1]: Process exited with status 1
2015-10-21T14:42:59.348953+00:00 heroku[web.1]: State changed from starting to crashed

本地我的app结构如下:

app/
config/
node_modules/
..
-mongodb
-mongoskin
..
public/

当我使用bash搜索heroku目录时,我没有看到mongodb模块。可能是什么问题?

1 个答案:

答案 0 :(得分:2)

我已经找到了答案。我在本地删除了node_modules文件并再次运行npm install,节点显示此警告:

npm WARN peerDependencies The peer dependency mongodb@~2.0 included from mongoskin will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency 
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.

我必须在我的package.json文件中明确声明对mongodb的mongoskin依赖,如下所示:

"dependencies": {
    ...
    "mongoskin": "2.0.3",
    "mongodb": "^2.0.46",
    ...
   }

我把它推到了heroku并且有效。