本文同步分享於個人部落格:Liwen Chiou | Digital Architect & Full-Stack Engineer
「孩子,抬起頭來。你已經不再是那個只會在公會大廳門口徘徊的新手了。」
過去這五天,你學會了如何暫停時空(Async/Await)、派送信鴿(Fetch)、解讀異世界語言(JSON)、啟動遠程偵測(?.),甚至穿上了復活保險甲(Try/Catch)。
這些碎片化的技能,今天將在你的手中凝結成一件真正的神器:「異世界氣象觀測站」。這是一個能跨越位面,與真實地球資料對接的強大工具。
準備好接受轉職前的最後一場試煉了嗎?
「導師,我們今天真的要連到『真實的伺服器』嗎?萬一我寫錯了,會不會弄壞人家的牆壁?」
我笑著指向窗外的雷鳴。
「別擔心,孩子。我們會使用 OpenWeather 公會提供的免費頻道。你只需要申請一個專屬的 『通訊密鑰 (API KEY)』,就能換取全球城市的即時氣象。今天,沒有模擬資料,沒有導師的保護色。你寫下的每一行 fetch,都將真實地穿越海底電纜,從遠方的資料中心帶回情報。」
在今天的專案中,你需要施展以下連招:
導師的圖解心法: 左側是你的觀測站介面 (UI),中間是身為氣象員的你 (JS),右側是遠方的氣象塔 (API Server)。你的工作就是發送請求 -> 拿到包裹 -> 拆封檢查 -> 渲染到面板。

為了確保你不會在雷雨中迷失,導師為你整理了五大建設階段:
searchBtn 與 cityInput 設定精確的 ID,以便 JS 捕捉。fetchWeather 函式中,使用 await 等待資料。try...catch 之中,並確保 finally 區塊負責關閉載入中的轉圈圈。?. 讀取資料. 例如:data.main?.temp。因為有些偏遠城鎮的回傳資料不一定完整,這能保護你的 UI 不當機。textContent 填入對應的 HTML 標籤中。catch 是否能彈出「座標錯誤」的警報。任務需求:
async/await 封裝獲取天氣的函式。try...catch:當 API 回傳 404 (找不到城市) 時,顯示「該領地不存在」。?. 讀取資料:data.main?.temp。恭喜你,勇敢的冒險者。
從今天起,你的代碼具備了「生命跳動」的感覺。它能與全世界互動,能處理失敗,能保護數據。明天,我們不增加新技能。我們會停下來,學習如何將這些強大的邏輯「拆分與分家 (Modules)」,為接下來的 終極職業轉職 做好最後的大屋整建。
在此,我宣布你已正式通過「與外部世界連結」的修煉。