更新網路服務

區域 ID

REGION_ID 是 Google 根據您在建立應用程式時選取的地區所指派的簡寫代碼。雖然某些區域 ID 可能看起來與常用的國家/地區代碼相似,但此代碼並非對應國家/地區或省份。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r。如果是在此日期之前建立的現有應用程式,網址中則可選擇加入地區 ID。

進一步瞭解區域 ID

本指南的這個章節說明如何寫入、測試及部署您在上一節「部署您的網路服務」中部署範例網路服務的更新。

事前準備

如果您尚未完成此「建構應用程式」指南中先前各節的相關操作,請先執行操作:

  1. 使用 App Engine 應用程式建立 Google Cloud 專案
  2. 編寫簡單的 Node.js 網路服務
  3. 在 App Engine 上部署網路服務

更新範例網路服務

下列各節會使用表單和使用者提交表單時,系統回應的處理常式來更新範例網路服務。

建立使用者輸入的表單

如要讓使用者提交資料至伺服器,請使用 HTML 表單。

  1. my-nodejs-service 資料夾中,建立名為 views 的資料夾來儲存 HTML 檔案。

  2. views 資料夾中建立名為 form.html 的檔案,並加入下列程式碼:

    <!DOCTYPE html>
    <html>
      <head>
        <title>My App Engine App</title>
      </head>
      <body>
        <h2>Create a new post</h2>
        <form method="POST" action="/submit">
          <div>
            <input type="text" name="name" placeholder="Name">
          </div>
          <div>
            <textarea name="message" placeholder="Message"></textarea>
          </div>
          <div>
            <button type="submit">Submit</button>
          </div>
        </form>
      </body>
    </html>

這個簡易表單可讓使用者輸入要傳送給伺服器的名稱和訊息。它會透過 HTTP POST 要求將資料傳送至 /submit,如 <form> 元素上的 methodaction 屬性所指定。

此時,您應該會有如下所示的檔案結構:

my-nodejs-service/
  views/
    form.html
  app.yaml
  package.json
  server.js

顯示表單

  1. 將以下行新增至 server.js 檔案頂端,以匯入 path 模組:

    const path = require(`path`);
    
  2. 新增下列 Express 處理常式,在使用者瀏覽至 /submit 時顯示表單:

    app.get('/submit', (req, res) => {
      res.sendFile(path.join(__dirname, '/views/form.html'));
    });

建立提交資料的處理常式

當使用者將訊息提交至伺服器時,系統會將含有資料的 POST 要求傳送至 /submit。如要讀取要求主體中的資料,請使用 Express urlencoded 中介軟體,並建立新的要求處理常式。

  1. 將應用程式設為使用 Express urlencoded 中介軟體:

    // This middleware is available in Express v4.16.0 onwards
    app.use(express.urlencoded({extended: true}));
  2. POST 處理常式新增至 server.js 檔案,以便讀取資料:

    app.post('/submit', (req, res) => {
      console.log({
        name: req.body.name,
        message: req.body.message,
      });
      res.send('Thanks for your message!');
    });

此範例處理常式會將使用者的名稱和訊息記錄至主控台,但您也可以在資料上執行操作,或將資料儲存在資料庫中。

在本機測試表單

部署變更之前,請從本機測試新表單。

  1. 啟動 Node.js 伺服器:

    npm start
    
  2. 前往 http://localhost:8080/submit 查看表單。

    提交包含表單的訊息。您應該會看見您的名稱和訊息出現在終端機視窗中。

部署變更

部署更新時,會建立預設服務的新版本,且流量會自動轉送至最新版本。部署做法:

  1. my-nodejs-service 資料夾中執行下列指令:

    gcloud app deploy
    

    這個指令與您在「部署網路服務」一文中學到的相同。

  2. 確認 Google Cloud 主控台中列出的新版本:

    查看版本

    您應該會看見兩個版本,分別對應到先前與目前的部署。

部署之後,可前往 https://PROJECT_ID.REGION_ID.r.appspot.com/submit 存取新表單。使用它提交一兩則訊息吧!

如果您不再需要先前的版本,可以從 Google Cloud 控制台的「版本」頁面將其刪除。

後續步驟

現在,應用程式有了可讓使用者提交資料的表單,接下來請學習如何在 Google Cloud 主控台查看應用程式的記錄