【问题标题】:How do I fix this problem when trying to host my rest api (node.js) on Heroku?尝试在 Heroku 上托管我的 rest api (node.js) 时如何解决此问题?
【发布时间】:2020-03-21 18:47:24
【问题描述】:

https://github.com/pickypickleapp/herokutest123

您好,我刚开始学习 Rest API,我正在尝试制作自己的 API 并将其托管/上传到 heroku。 尝试托管时出现此错误。我尝试了很多解决方案,大多数似乎都说它与 Procfile 相关,但它似乎对我不起作用。有什么建议吗?

【问题讨论】:

  • Please don't post screenshots of text。它们无法被搜索或复制,并且可用性差。相反,将代码作为文本直接粘贴到您的问题中。如果选择它并单击{} 按钮或Ctrl+K,则代码块将缩进四个空格,这将导致其呈现为代码。

标签: node.js rest api heroku


【解决方案1】:

如果您在消息上方看到一点,您可能会注意到您错过了 server.js 中引用的 dotenv/config 包(第 6 行)。否则,提交node_module 不是好的做法,而是提交文件package-lock.json。它将确保正确的包,即根据版本的正确代码,将安装在 heroku 上。

npm install --save dotenv

【讨论】:

  • ...但是,不要在 Heroku 上使用 dotenv。这是一个方便地填充环境变量的开发工具,不应提交.env 文件。相反,请使用 Heroku 的配置变量。
【解决方案2】:

首先,您需要了解将网站加载到 Heroku 时会发生什么。它寻找 package.json 来安装依赖项。当您在您的机器上运行npm install 时,这只发生在您的机器上。 Heroku 是不同的机器,所以它也需要安装所有东西。要查看它是如何发生的,请在您的计算机上执行以下操作。

  1. 删除 node_modules rm -rf node_modules

  2. 运行npm install

  3. 转到 localhost 看看会发生什么。

如果出现问题,您将在节点控制台中看到错误。

此外,当您将网站放在托管服务上时,您不需要使用 nodemon 包,因为它仅用于开发。取而代之的是,您想使用pm2 来监控您的应用性能并在它崩溃时自动重新加载。

【讨论】:

    猜你喜欢
    • 2016-10-05
    • 1970-01-01
    • 2016-10-08
    • 2012-12-19
    • 2011-05-24
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多