除非我提供CC编号,否则在Heroku中使用MongoLab不起作用?

Bru*_*ira 6 deployment heroku node.js

我已经开发了一个nodeJS应用程序,使用Angular作为前端(使用MEAN堆栈并计划使用Bootstrap),当我尝试将其部署到Heroku时,每当我运行此行时:heroku addons:create mongolab我得到以下内容输出:

bruno@bruno-HP-epicsauce:~/herokuFinalApp$ heroku addons:create mongolab
 !    Please verify your account to install this add-on plan (please enter a credit card) For more information, see https://devcenter.heroku.com/categories/billing Verify now at https://heroku.com/verify 
bruno@bruno-HP-epicsauce:~/herokuFinalApp$
Run Code Online (Sandbox Code Playgroud)

在两个站点(mongolab和Heroku)中,它说它是免费的...我已经定义了名为MONGOLAB_URI的heroku env变量,如下所示:

bruno@bruno-HP-epicsauce:~/herokuFinalApp$ heroku config:set MONGOLAB_URI=mongodb://USER:PASS@ds041643.mongolab.com:41643/dbNAME
Setting config vars and restarting rocky-sea-9859... done, v4
MONGOLAB_URI: mongodb://USER:PASS@ds041643.mongolab.com:41643/dbNAME
bruno@bruno-HP-epicsauce:~/herokuFinalApp$ heroku config | grep MONGOLAB_URIMONGOLAB_URI: mongodb://USER:PASS@ds041643.mongolab.com:41643/dbNAME
bruno@bruno-HP-epicsauce:~/herokuFinalApp$
Run Code Online (Sandbox Code Playgroud)

它仍然无法工作......

在git存储库中,我有以下文件结构:

在此输入图像描述

应用程序正在侦听端口:process.env.PORT而不是一些本地的,并且package.json文件包含正确的依赖项,因为它是使用npm init自动生成的.

在procfile中我通常引用包含我的服务器端代码的文件:

web:node server.js

app.js包含Angular客户端代码.

是否有100%免费的方式在Heroku中部署应用程序并在某处托管数据库?

vic*_*ask 7

您有两种方法可以在Heroku上使用MongoLab服务:

  1. 从Heroku连接到现有的MongoLab部署(无需信用卡)
  2. 将MongoLab添加为Heroku附加组件(需要信用卡)

由于您已设置MONGOLAB_URI,我假设您使用MongoLab创建了一个单独的帐户并创建了一个新的MongoDB部署.在这种情况下,您不需要插件.如果您将MongoDB驱动程序配置为使用连接URI,则在Heroku上设置MONGOLAB_URI配置通常就足够了.在此更多信息点击这里

Heroku要求提供信用卡以进行验证.除非您选择付费插件,否则不会向您收费.

如果您要执行以下操作,则必须验证您的帐户:向应用添加任何加载项,即使加载项是免费的.唯一的例外是Heroku Postgres和Heroku Connect附加组件的免费计划,无需验证即可添加(源代码)


Dan*_*ani 5

他们的员工寄语:

如果您仅使用免费计划,则不会向您收费。不幸的是,有些人出于恶意目的使用免费的附加计划,因此我们需要一种验证帐户的方法。现在,我们通过请求有效的信用卡来做到这一点,并且将来我们可能会添加更多的验证机制。

我与您的观点相同,但是如您所见,添加该信息没有问题(但老实说,我也希望采用其他方式)。


Jas*_*say 2

我不知道它实际上会向你收费,它只是想让 CC 验证。但您始终可以使用http://progrium.viewdocs.io/dokku/或 Digital Ocean VPS(只要您不期望完美的安全性等,这实际上并不比设置您的开发机器更难)。

  • 事实上,Dokku 运行在 VPS(如 Digital Ocean/Linode/EC2)上并使用 Docker 容器。如果您通过谷歌搜索“Digital Ocean dokku”或“Digital Ocean MEAN”,Digital Ocean 可能是最便宜且最容易设置的。如果您不需要 Mongolab,则不需要它,但 VPS 每月 5-10 美元。但也许首先要检查一下 CC 是否真的收费。 (2认同)