错误:找不到模块'./drivers'与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) 

好! 我花了一段时间,但我find了解决办法

  1. 在命令行中写入: heroku config:set NODE_MODULES_CACHE = false –app
  2. 做一些改变并推动项目
  3. 在命令行中写入: heroku config:set NODE_MODULES_CACHE = true –app

祝你好运 :)

我只需在克隆的目录中运行heroku run bash ,然后在rm -rf node_modules键入并从那里运行npm install 。 简单地运行服务器通过heroku run bash和工作正常! 希望这会为你工作。 确保你的.gitignore文件中有node_modules

我最近碰到类似的问题。 我正在使用mongoose的MEAN栈作为我的ODM并在Heroku上托pipe:

 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 (在caching行为部分),我必须从git node_modules删除我的node_modules目录(在Heroku文档中也推荐)。 看到这个线程如何从git中删除一个目录。

另外,将“node_modules”目录添加到.gitignore文件是一个好主意。 注:这不会从git中删除文件,您仍然必须删除任何您想要忽略的以前提交的文件或目录。