【发布时间】:2018-08-06 00:09:01
【问题描述】:
我在 Heroku 中部署了一个简单的 REST API。它使用 MongoDB 作为端点的文档存储服务。自从我运行npm install 为一组不同的功能添加另一个模块后,它就无法正常运行。在那一点上我做什么并不重要,直到我在上次运行 npm install 之前将 node_modules 文件夹(本地)替换为旧版本,然后重新部署。
2018-08-03T16:12:14.920647+00:00 heroku[web.1]: Starting process with command npm start
2018-08-03T16:12:18.405746+00:00 app[web.1]:
2018-08-03T16:12:18.405762+00:00 app[web.1]: > todolistapi@1.0.0 start /app
2018-08-03T16:12:18.405764+00:00 app[web.1]: > node server.js
2018-08-03T16:12:18.405766+00:00 app[web.1]:
2018-08-03T16:12:18.593093+00:00 app[web.1]: /app
2018-08-03T16:12:18.594629+00:00 app[web.1]: /app
2018-08-03T16:12:19.115500+00:00 app[web.1]: module.js:549
2018-08-03T16:12:19.115542+00:00 app[web.1]: throw err;
2018-08-03T16:12:19.115544+00:00 app[web.1]: ^
2018-08-03T16:12:19.115545+00:00 app[web.1]:
2018-08-03T16:12:19.115547+00:00 app[web.1]: Error: Cannot find module './decimal128'
2018-08-03T16:12:19.115550+00:00 app[web.1]: at Function.Module._resolveFilename (module.js:547:15)
2018-08-03T16:12:19.115551+00:00 app[web.1]: at Function.Module._load (module.js:474:25)
2018-08-03T16:12:19.115553+00:00 app[web.1]: at Module.require (module.js:596:17)
2018-08-03T16:12:19.115554+00:00 app[web.1]: at require (internal/module.js:11:18)
2018-08-03T16:12:19.115556+00:00 app[web.1]: at Object.<anonymous> (/app/node_modules/mongoose/lib/drivers/node-mongodb-native/index.js:6:22)
2018-08-03T16:12:19.115558+00:00 app[web.1]: at Module._compile (module.js:652:30)
2018-08-03T16:12:19.115559+00:00 app[web.1]: at Object.Module._extensions..js (module.js:663:10)
2018-08-03T16:12:19.115561+00:00 app[web.1]: at Module.load (module.js:565:32)
2018-08-03T16:12:19.115562+00:00 app[web.1]: at tryModuleLoad (module.js:505:12)
2018-08-03T16:12:19.115564+00:00 app[web.1]: at Function.Module._load (module.js:497:3)
我阅读了至少 10 篇其他文章,并尝试降级、重新安装 MongoDB,但均未成功。
【问题讨论】:
-
欢迎来到 StackOverflow。如果您要编辑问题以识别您安装的破坏了事情的模块,它可能会帮助社区为您提供帮助。谢谢。
-
曼迪肖,谢谢。破坏事情的不是模块本身,而是运行 NPM install 命令,这似乎覆盖了我在本地拥有的 MongoDB 版本。在做了更多研究之后,我怀疑真正的问题可能更有可能是我对 Heroku 的推送包含在 node_modules 文件夹中。我刚刚运行了这些命令,它现在正在工作: git rm -r --cached node_modules git commit -m '删除现在被忽略的目录 node_modules' git push origin master
标签: node.js mongodb heroku npm