昨天只把GET改成讀取資料庫,今天把剩下的POST、PUT、DELETE全部接上,讓待辦清單終於做到真正的資料永久保存。
今天做的事
新增改成寫入資料庫:
app.post('/api/todos', (req, res) => {
const { title } = req.body;
if (!title) return res.status(400).json({ message: '請提供待辦事項內容' });
const stmt = db.prepare('INSERT INTO todos (title, done) VALUES (?, 0)');
stmt.run(title, function (err) {
if (err) return res.status(500).json({ message: '資料庫錯誤' });
res.status(201).json({ id: this.lastID, title, done: 0 });
});
stmt.finalize();
});
更新(切換完成狀態)跟刪除也改成對資料庫下指令,分別用UPDATE跟DELETE FROM這兩個SQL語法。
觀察
心得
前九天雖然功能看起來都正常,但本質上是正常運作的假象,資料其實隨時可能因為伺服器重啟而消失,只是因為開發時很少重啟,才沒發現這個破綻。今天接上資料庫後,才算是把地基補起來,之前的CRUD功能才是真正完整的。
回頭看這十天,從原生http手刻路由,到Express簡化路由,到Middleware、到前後端分離串API,再到今天資料真正落地保存,每一步都是在補上一塊之前刻意留下的坑。這種先讓它動起來,再一步步補強的順序,比一開始就想把所有東西寫完整,更容易持續推進。