虽然AWS现在也推出了自己的PaaS平台,叫Elastic Beanstalk,但heroku的优势在于它上面有很多第三方的add-on,比如MongoDB,mysql, redis, memcached, 还有各种消息队列、sms和邮件、后台批处理、搜索、自动化监控等插件,从生态环境的角度来说比AWS还是强很多。
这也就是说,heroku上有现成的Node.js PaaS运行环境,还有很多add-on,每天会自动把数据备份到AWS S3上,你只需要用git命令把代码push上去就行了,其他的什么都不用管。对于咱们程序猿来说,世界上还有比这更爽的事情吗?
所以,为了造福网友,俺今天就把部署的几个小步骤总结一下。
假定你已经有了一个叫sample的node.js应用,代码放在/Home/Apps/sample9527下,目录下有你的服务器端核心js文件server.js,现在你已经cd到了这个目录下。
为了让heroku识别你的应用,需要在这个目录下加入一个文件Procfile,内容是一行代码:
web: node server.js
(这里的 web: node 是告诉heroku你要部署的是一个node.js web应用,后面的server.js 就是你的服务器端核心程序代码文件名)
好,现在部署工作可以开始了。
首先,你需要到 www.heroku.com 上注册一个用户,用户名是你的邮箱地址。然后安装 Heroku Toolbelt ,这是一个命令行工具,可以让你直接在shell里用命令发布代码,查看系统状态,修改服务器配置,等等。
然后在shell里用heroku login命令登录,输入你的用户名和密码即可。
$ heroku login
第一步可以用foreman start命令检查一下你的代码是否能顺利在heroku上运行,如果看到输出中没有报错,那就说明基本正常。
$ foreman start
然后就是用git同步代码:
$ git init $ git add . $ git commit -m "init"
创建heroku应用:
$ heroku create sample9527
如果sample9527这个app名在heroku上没有人用,那么你会创建成功,应用的链接就是http://sample9527.herokuapp.com/,不然就改个名字接着试,或者直接用heroku create让它帮你起一个新名字。
如果需要安装一些数据库之类的插件,可以看看它有什么add-on可用,然后在命令行加入。比如加入一个MongoLab提供的MongoDB数据库:
$ heroku addons:add mongolab
(大部分add-on需要你在用户信息中填入信用卡,但是如果选用免费版本则不会被扣费,放心吧)
然后就可以同步程序代码了:
$ git push heroku master
同步之后,heroku会自动根据npm配置下载和安装必要的dependencies,然后启动你的应用。
现在可以到应用链接看一下是否正常,如果有错误,可以在命令行查看日志:
$ heroku logs
根据日志中的错误信息修改代码后,可以再次提交代码:
$ git commit -a -m "update some code" $ git push heroku master
或者在需要时直接用restart命令重启服务:
$ heroku restart
heroku的初级玩法基本上就是这些了,够简单吧?自己去试试呗。
V2.6.5 在Heroku上部署API后请求API时,我面临一个400错误的错误请求。但我不知道为什么? 我所做的: > 在/api的根目录中添加了Procfile 补充。htaccess in/api/public(通过composer需要symfony/apache-pack命令) Heroku Dashboard应用程序设置上定义的APP\u ENV和DATABASE\u URL 在Her
当我试图将我的流星应用程序部署到Heroku时,它在引导时崩溃了。
目标 将 https://github.com/Ricardo-Li/node-practice-2 (这个项目已经被删了。参照 https://github.com/alsotang/node-lessons/tree/master/lesson3 的代码自己操作一下吧。)这个项目部署上 heroku,成为一个线上项目 我部署的在这里 http://serene-falls-9294.herok
在Heroku上部署Node.js应用程序时,我遇到以下错误。 2017-04-18T18:40:10.158442+00:00APP[Web1]:npm错误!请在任何支持请求中包含以下文件: 2017-04-18T18:40:10.158544+00:00APP[Web1]:npm错误!/app/npm-debug.log 2017-04-18T18:40:10.237236+00:00 Her
我正在开发一个基于nodejs和postgresql的corona病毒项目。我正在尝试在heroku上部署我的应用程序,但我遇到了一些问题。这些问题来自postgres配置(我认为)。 我有一个. env文件,其中我初始化了一些变量(DATABASE_URL,...),但我不知道如何将它们传输到heroku。我关联了一个插件postgres-heroku,它会生成一个具有随机值的DATABASE_
我是lagom scala API初学者。我使用lagom scala play框架开发了rest API。现在我想在heroku上部署我的服务,只是为了实时测试的目的。我遵循下面的链接继续。 ------>正在运行:sbt编译阶段 正在下载1.2.8的sbt launcher: 摘自https://repo.scala-sbt.org/scalasbt/maven-releases/org/sc