错误:找不到模块' ./ drivers'仅在服务器上使用mongoose

时间:2015-08-05 14:58:28

标签: node.js mongodb mongoose

mongoose在电脑上运行良好

但在服务器上我收到此错误:

Error: Cannot find module './drivers'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Function.<anonymous> (/usr/local/lib/node_modules/pm2/node_modules/pmx/lib/transaction.js:59:21)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/var/www/html/WTV.com/node_modules/mongoose/lib/schema.js:5:16)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)

3 个答案:

答案 0 :(得分:4)

好的!我带了一段时间,但我找到了解决方案

  1. 在命令行中写: heroku config:set NODE_MODULES_CACHE = false --app
  2. 进行一些更改并推送项目
  3. 在命令行中写: heroku config:set NODE_MODULES_CACHE = true --app
  4. 祝你好运:)

答案 1 :(得分:1)

我最近遇到了类似的问题。我正在使用MEAN堆栈与mongoose作为我的ODM并在Heroku上托管:

Error: Cannot find module './drivers'
at Function.Module._resolveFilename (module.js:326:15)
at Function.Module._load (module.js:277:25)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/app/node_modules/mongoose/lib/schema.js:5:16)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Module.require (module.js:354:17)
at Function.Module._load (module.js:301:12)
at require (internal/module.js:12:17)
Process exited with status 1
State changed from starting to crashed

除了将NODE_MODULES_CACHE=false设置为here(在缓存行为部分下)之外,我还必须从git repo中删除我的node_modules目录(在Heroku文档中也是推荐的)。有关如何从git中删除目录的信息,请参阅this thread

另外,添加&#34; node_modules&#34; .gitignore文件的目录是个好主意。注意:这不会从git中删除文件,您仍然必须删除任何以前要忽略的文件或目录。

答案 2 :(得分:1)

我只是在克隆目录中运行heroku run bash并输入rm -rf node_modules并从那里运行npm install。只需通过heroku run bash运行服务器并且工作正常!希望这对你有用。确保node_modules文件中包含.gitignore