簡介
本篇主要目的如下:
- 實現(xiàn)商品列表頁的后端排序邏輯
- 前后端聯(lián)調(diào)排序邏輯
1. 實現(xiàn)商品列表頁的后端排序邏輯
分別啟動前后端項目,我們在瀏覽器打開商城地址,如下:

請求后臺接口會帶上三種排序參數(shù)default,priceDown和priceUp。另外,如果不帶參數(shù),我們默認(rèn)排序也是default。
這里,我們做一個簡單的處理,就是對于后端的處理邏輯,defalut和priceUp等價。當(dāng)然現(xiàn)實中,我們肯定是有一個復(fù)雜的算法,比如計算熱度啊,距離啊,或者最近瀏覽啊等等計算出一個默認(rèn)排序。
修改routes/goods.js如下:
/* GET goods */
router.get('/', function (req, res, next) {
// 只有接口請求帶參數(shù)sort=priceDown才會按價格降序
let sort = req.query['sort'] === 'priceDown'?-1:1;
let query = Good.find({});
query.sort({salePrice: sort});
query.exec((err, doc) => {
if (err) {
res.json({
code: '900',
msg: err.message || '服務(wù)器錯誤'
})
} else {
res.json({
code: '000',
msg: '',
result: doc
})
}
});
});


2. 前后端聯(lián)調(diào)排序邏輯

可以看到前端之前的邏輯并不需要改動。
總結(jié)
可以看到,前一節(jié)和本節(jié),對前端邏輯的調(diào)整基本沒有,僅僅將請求從mock換到真實后臺接口地址即可,這就是前后端分離的好處。
我們提交代碼:
six-tao-server
git status
git diff
git commit -am 'goodslist sort logic done'
git push