【Heroku】跟github結合的的雲端平臺 - Nodejs篇

截至目前為止,Heroku支援的語言有八種,分別是Node.jsRubyPythonJavaPHPGoScalaClojure,個人為什麼會選擇這個平臺呢?主要是它主流的語言都有支援到,加上有免費的使用流量,網路上的教學也多,也有SSL的保護,加上也是使用git方便管理,是不可多得的好物啊,拿來做實驗剛剛好。而在接下來的過程中,會使用Node.js為主體,在Ubuntu平臺上,部署到Heroku這個PaaS的服務上。

準備工作

安裝Nodejs

  • 主要是安裝nodejs的開發環境,及git的管理工具
sudo apt install nodejs -y
sudo apt install npm -y
sudo apt install git -y
sudo apt install gitk -y

安裝Heroku-CLI

sudo apt install curl -y
curl https://cli-assets.heroku.com/install.sh | sh

建立專案

申請帳號

建立新WebAPP

登入Heroku-CLI

  • 登入Heroku的方式,可直接在網頁上登入,或者在Terminal登入都可以
heroku login    # 會在網頁上登入
heroku login -i # 直接在terminal登入

將資料夾的git跟keroku的git做連接

  • 主要會產生一個名叫heroku的分支去跟heroku的git資料庫做連接
mkdir nodejs-demo
cd nodejs-demo
git init
heroku git:remote -a <你的專案名稱>

安裝VSCode

  • 這個就不是一定要安裝的了,不過VSCode是一個不錯的IDE

產生package.json

  • 使用npm來產生package.json檔,來管理nodejs的相關套件,這裡比較要注意的是engines這裡,要告訴heroku你的運行環境是哪一版的Nodejs
npm init
{
  "name": "nodejs-demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node index.js"
  },
  "dependencies": {
    "koa": "2.x"
  },
  "engines": {
    "node": "12.x.x"
  },
  "author": "",
  "license": "ISC"
}

建立一個簡單的Nodejs應用

// index.js
const Koa = require('koa');
const app = new Koa();
const port = process.env.PORT || 3000;

app.use(async function(ctx) {
    ctx.body = 'Hello Koa2';
});

app.listen(port, () => console.log(`Hello Koa2 on ${port} Port`));
npm install
node index.js

上傳程式到Heroku的git資料庫

  • 這裡是使用termial做處理,上傳到名為heroku的master分支上,當然直接使用Git的IDE也是可以的,在這裡可以看到上傳的過程,上傳後會自動npm install
git add .
git commit -am "GoGoGo"
git push heroku master

開啟網頁

heroku open

使用自己的git倉庫

  • 這裡先將之前的Code上傳到自己的github上,然後在heroku中去做設定

後記

  • 因為其實在過程中有發生許多奇奇怪怪的坑,有時重開機就好了,這一篇只是個人想用自己的想法去做(其實也差不多啦),而不使用官方的做法,所以這裡就不提供程式碼害大家啦…XD