學習Heroku with Node.js

註冊Heroku帳號


下載Heroku CLI-----下載
MacOS也可以在 terminal 打以下指令透過 Homebrew下載
$ brew install heroku/brew/heroku
※Homebrew是macOS一個缺少套件的管理工具。-----了解更多

透過以下指令登入heroku
$ heroku login

我選擇以Node.jsxu Heroku

確認是否有裝git套件
$ git --version
沒有的話下載

clone可隨後部署到Heroku的示例應用程序本地版本
在本地command shell或terminal中執行以下命令
$ git clone https://github.com/heroku/node-js-getting-started.git
$ cd node-js-getting-started
※顯示「fatal: 不能建立工作區目錄 'node-js-getting-started': Permission denied」,指令前面+“sudo”


建立一個app在Heroku上
$ heroku create

Deploy your code?
$ git push heroku master

現在已部署該app。確保至少有一個app實例正在運行:
$ heroku ps:scale web=1
※中途遇到「Warning: heroku update available from 7.35.0 to 7.41.1.」則先升級heroku
$ heroku update

通過其app名稱生成的URL訪問該app。可以按以下方式打開網站
$ heroku open

查看logs
$ heroku logs --tail
※ 「Control+C」停止查看


定義一個Procfile(app根目錄中的text file)來明確告知執行什麼command來啟動app
web: node index.js

可以透過以下ps命令檢查正在運行的測功機(dynos)
$ heroku ps
=== web (Free): `node index.js`
web.1: up 2014/04/25 16:26:38 (~ 1s ago)

在根目錄執行以下command安裝這些依賴項目,為之後系統在本地運行app做準備
$ npm install

在本地運行app
$ heroku local web
heroku local 檢查 procfile 確定要運行的內容
使用瀏覽器打開http://localhost:5000
※阻止該app在本地運行,則在CLI中按「Ctrl+C」

測試本地運行

以cool-ascii-faces套件為例
$ npm install cool-ascii-faces

修改index.js內容
const cool = require('cool-ascii-faces');
const express = require('express');
const path = require('path');
const PORT = process.env.PORT || 5000;

express()
  .use(express.static(path.join(__dirname, 'public')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .get('/', (req, res) => res.render('pages/index'))
  .get('/cool', (req, res) => res.send(cool()))
  .listen(PORT, () => console.log(`Listening on ${ PORT }`));
$ npm install
$ heroku local

打開http://localhost:5000/cool查看效果

將修改後的文件添加到本地git目錄中
$ git add .

提交commit
$ git commit -m "Add cool face API"

push到 heroku master
$ git push heroku master

查看內容
$ heroku open cool

大概是這樣,其他之後再研究~




















留言

這個網誌中的熱門文章

使用Sensor APIs(Web API)遇到的問題【如何讓http -> https(SSL)】

學習將Line Bot連結webhook(with ngrok)