那么要使用它,首先你得裝上node.js和mongodb,關于mongodb的安裝和操作介紹可以參考:
描述場景
更新購物車數量與勾選狀態
業務邏輯
查詢到當前用戶的購物車對象Cart,更新前端傳遞過來的quantity與selected字段
方法一
var _ = require('underscore'); Cart.findOneAndUpdate({ _id: req.body.cart._id, user: user }, _.pick(req.body.cart, 'quantity', 'selected'), { new: true }, function(err, updatedCart) { res.send( utils.json({ data: updatedCart }) ); } );
注:_.pick相當于
{ quantity: req.body.cart.quantity, selected: req.body.cart.selected }
方法二
var _ = require('underscore'); Cart.findOne({ _id: req.body.cart._id, user: user }, function(err, cart) { if (err) { console.log(err); } // 復制對象 _.extend(cart, req.body.cart); cart.save(function(err, updatedCart) { res.send( utils.json({ data: updatedCart }) ); }); } );
對比
第一種代碼使用findOneAndUpdate只用了一步,更加簡潔,適用于更新的字段少且非常明確的場景
第二種先findOne再對entity進行save操作,利用了underscore對象復制,面向整個對象操作更加靈活,適用于字段多且不確定的場景
結論
需求總是在變的,所以我一般采用第二種。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com