我开发了一个nodeJS应用程序,使用Angular作为前端(使用MEAN堆栈并计划使用Bootstrap),当我尝试将其部署到Heroku时,每当我运行此行时:heroku addons:create mongolab I得到以下输出:
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$
在两个网站(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$
它仍然不起作用......
在git存储库中,我有以下文件结构:
应用正在侦听端口:process.env.PORT而不是某些本地端口,而package.json文件包含正确的依赖关系,因为它是使用npm init自动生成的。
在proc文件中,我通常引用包含服务器端代码的文件:
web:node server.js
app.js包含Angular客户端代码。
是否有100%免费的方式在Heroku中部署应用程序并在某处托管数据库?
答案 0 :(得分:6)
在Heroku上有两种选择使用MongoLab服务:
由于您已设置MONGOLAB_URI,我假设您使用MongoLab创建了一个单独的帐户并创建了一个新的MongoDB部署。在这种情况下,您不需要插件。如果您将MongoDB驱动程序配置为使用连接URI,则在Heroku上设置MONGOLAB_URI配置通常就足够了。 有关此here
的更多信息Heroku要求提供信用卡以进行验证。除非您选择付费插件,否则不会向您收费。
如果您愿意,您必须验证自己的帐户: 即使加载项是免费的,也可以向您的应用添加任何加载项。唯一的例外是Heroku Postgres和Heroku Connect附加组件的免费计划,无需验证即可添加(source)
答案 1 :(得分:4)
来自员工的留言:
如果您只使用免费套餐,则不会向您收取任何费用。不幸的是一些 人们为了邪恶的目的使用免费的附加计划,所以我们需要一种方法 验证帐户。现在我们通过申请有效的信用来做到这一点 我们可能会在未来添加更多验证机制。
我与你的观点相同,但正如你所读到的,添加这些信息没有问题(但说实话,我也更喜欢其他方式)。
答案 2 :(得分:2)
我不知道它实际上会向您收费,它只是想让CC验证。但是你可以随时使用http://progrium.viewdocs.io/dokku/或Digital Ocean VPS(这实际上并不比设置你的开发机器更难,只要你不期望完美的安全等等。)
答案 3 :(得分:0)
您不需要mLab MongoDB
插件,只需手动添加Config Vars