【Heroku】跟github結合的的雲端平臺 - Nodejs篇
截至目前為止,Heroku支援的語言有八種,分別是Node.js、Ruby、Python、Java、PHP、Go、Scala、Clojure,個人為什麼會選擇這個平臺呢?主要是它主流的語言都有支援到,加上有免費的使用流量,網路上的教學也多,也有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
- 就在這裡登入該服務,然後建立新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應用
- 在這裡是使用koa2這個framework來做demo,看看在本機上 - localhost:3000是否能正常執行
// 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倉庫
後記
- 因為其實在過程中有發生許多奇奇怪怪的坑,有時重開機就好了,這一篇只是個人想用自己的想法去做(其實也差不多啦),而不使用官方的做法,所以這裡就不提供程式碼害大家啦…XD