
一個完全不懂 Node.js 的人,也能用 Cursor 寫 LINE Bot 應用
身為一個熟悉 Python 的開發者,過去主要在資料處理與工具開發領域打滾,但如果你問我 npm install
到底裝去哪、.ts
和 .js
差在哪裡,那真的是知識空白區 XD
這次的目標是打造一個 LINE Bot,功能簡單直接:使用者在群組中輸入「+1」「-1」,系統會自動計算報名狀況,並回報至 LINE 群組。
雖然直接可以用 Python 寫,但剛好想嘗試看看 —— 如果完全不懂的語言,只靠 Cursor,我能寫出什麼程度的東西?
開工前的準備:先定義 Cursor 規則
一開始並沒有選用 npx
建立預設專案,而是直接開了資料夾,把 .cursor/*.mdc
寫好。
這邊可以查到各語言的 Cursor Rule 範例
https://github.com/PatrickJS/awesome-cursorrules
再來是需要寫好專案的 SPEC(要做什麼、不做什麼),可以省下很多返工的時間。
就像寫測試前先寫好需求,AI 幫你開發時也需要類似的界線感。
當 Cursor 自己爆走的時候,也可以回到 SPEC 文件提醒它。
以下是一些建議的 .md
檔案及其內容範例:
.cursor/spec.md
描述專案的功能需求與範圍,明確指出哪些功能需要實作。
範例:
## 專案目標
建立一個 LINE Bot,使用者輸入「+1」時,系統登記報名並回報目前狀態。
## 功能需求
- 接收 LINE webhook 訊息
- 處理「+1」與「取消」指令
- 回報目前報名人數與暱稱清單
- 支援重置報名清單
.cursor/architecture.md
說明專案的架構設計,包括目錄結構、模組劃分等。
範例:
## 專案架構
- `src/`:主要程式碼目錄
- `handlers/`:處理各種 webhook 事件
- `services/`:業務邏輯處理
- `utils/`:工具函式
- `tests/`:測試程式碼
.cursor/styleguide.md
定義程式碼風格與命名規範,確保 AI 生成的程式碼符合團隊標準。
範例:
## 命名規範
- 變數與函式使用 camelCase
- 類別名稱使用 PascalCase
- 常數使用全大寫加底線(例如:MAX_VALUE)
## 程式碼風格
- 使用 2 個空格作為縮排
- 每行程式碼不超過 80 個字元
- 函式應包含簡短的註解說明其功能
建議在專案初期就建立這些文件,並在開發過程中持續更新,這樣即使 AI 在生成程式碼時出現偏差,也可以透過這些文件快速校正方向。
開發過程:用 Python 腦袋駕馭 Node.js 世界
描述需求的方式,則是延續了寫 Python 時的習慣,具備基本程式邏輯知識,跨語言開發可以使用更精準的關鍵字,只要描述得夠清楚,回傳的程式碼品質都很不錯。
舉例來說:
「我想記錄一組使用者的報名狀態,每個使用者都有一個 ID,並對應到一些動態資訊,例如報名時間或暱稱。像是 Python 的 Dict user_id -> { nickname, time }
即使實際語法在 JS 或 TypeScript 中不同,只要能清楚表達出邏輯目的,Cursor 幾乎都能正確 map 到對應語言的語法與實作方式。
常見踩雷:每個需求,小塊小塊處理最好
專案結構一旦搭好,就進入功能拆解流程。
初期曾經嘗試一次請它實作多個功能(處理訊息、更新報名、回傳狀態),結果它直接改掉整個架構,還複製出一堆重複邏輯(不停的向後兼容😵💫)
後來採用「一次請它處理一個功能」的方式,穩定度就高很多。
成果:Pluseal 活動報名工具
LINE +1 報名活動海豹 Pluseal
是這次實驗做出來的成果
在 LINE 群組中輸入「+1」、「-1」,就會自動登記活動報名、回報名單,讓主揪不用再花力氣手動計算,是個方便實用的日常小工具唷 :)
結語:即使對語法不熟,也能完成一個完整產品
AI 工具出現後,開發的順序已經反過來: 不是「會某個語言 → 才能做某種產品」,而是「有想法 → 定義 SPEC → 讓 AI 幫你完成技術路徑」。
這次的 Pluseal 就是個範例:
Node.js 從 0 開始, 但靠著明確描述與善用工具,一樣能讓它跑上 Production。
btw,所有使用到的圖像化元素也都是搭配 GPT 等工具生成的唷~