前面已經規劃完這次需要做的東西,現在我們來實作簡易的產列表 API 吧
接著拿之前剛建立的環境繼續實作,還記得我們第一個 API 嗎
app.use('/', function(){
...
})
但我們定義 API 通常會在指定他的 URL 名稱,這時候我們將這段改成
// GET 取得所有產品資料
app.use('/products',function(req, res, next){
res
.status(200)
.json({
message: 'Get product data success'
})
})
// GET 取得單一產品資料
app.use('/products/:id',function(req, res, next){
...
})
// POST 新增所有產品資料
app.use('/products',function(req, res, next){
...
})
// PATCH 取得所有產品資料
app.use('/products/:id',function(req, res, next){
...
})
// DELETE 取得所有產品資料
app.use('/products/:id',function(req, res, next){
...
})
此時會有個問題,有許多 Router URL 是一樣的,Node Router 在匹配 URL 的時候,如果有重覆
的 URL 會先執行第一個出現的,但想想如果這時候是發 DELETE 近來,但他會先執行 POST 的 Router,結果並不是我們想要的,當然你可以透過 req.method
去判斷如果不是 DELETE 就執行 next()
,但有更好管理的方法。