在Heroku上部署MEAN

Heroku是国外普遍使用大受好评的PaaS,支持Nodejs,基础服务(Nodejs+MongoDB)基本都是免费的。搭建MEAN框架也不怎么费劲。名字是'Hero'和'taiku(俳句)'的合体。我们先一起来读一读发音(her-OH-koo)好了。


  1. 准备工作
    github官网上下载GitHubSetup.exe,我们需要使用Git Bash进入到shell里头输入命令(与RSA公钥的有关)。

    还有就是下载heroku toolbelt工具来使用heroku的一套命令了。

  2. RSA密钥的配置
    Heroku支持RSA和DSA密钥格式,我们在安装好GitHub Windows客户端后,在/Users/user/下右键点击.ssh(没有就新建一个),打开Git Bash。如图,输入 ssh-keygen -t rsa,确认路径,无需理会passphrase确确认(因为我已经有id_rsa密钥所以多了个覆盖确定)。

    接着就是想公钥上传到Heroku了,这里使用heroku keys:add添加密钥,如果成功应该会出现下图。

    还有一些命令也许以后会用到,显示已有密钥 heroku keys,移除已有密钥 heroku keys:remove 密钥名(从上个命令可以得到),移除所有密钥 heroku keys:clear

    最后我们只确定SSH是否能正常使用,输入命令 ssh -v git@heroku.com,如果出现下图的Authenticated to heroku.com就可以用git来同步代码了。

  3. 上传源码
    在项目(最好没有.git文件夹)根目录添加一个能让Heroku识别应用入口的文件Procfile,里头输入web: node server.js。再右键点击空白,点击Git Bash进入Shell。

    输入heroku login输入你的用户名和密码。接下来就是创建应用和数据库

    heroku create appName
    heroku addons:add mongoLab
    

    添加mongoDB的插件后还需要配置数据库信息。我们最好在mongolab新建一个用户来给应用使用,把项目的数据库配置修改为 mongodb://<dbuser>:<dbpassword>@ds051720.mongolab.com:51720/<dbname>

    再用git同步代码(这里就会覆盖掉以前git的配置咯)

    git init
    git add .
    git commit -m "some messages"
    

    再就是创建数据库的插件 heroku addons:add mongolab,最后使用命令 git push heroku master,如果出现下图的Launching... done,我们就打开链接试试。

    以后需要更新代码就按下列命令同步上去就可以了。

    git commit -a -m "some new messages"
    git push heroku master
    
  4. 相关调试方法
    当我们程序出错时,我们可以使用 heroku logs --tail查看服务器的日志。一般来说,在本地能正常运行的app,放在平台上无法运行就应该是app配置方面的问题了。