前言:客戶(hù)端與服務(wù)器相連接方式主要有兩種事期,第一種是containers中寫(xiě)荆虱,將所有數(shù)據(jù)獲取蒿偎,做類(lèi)似緩存的處理,在一定條件下觸發(fā)方法執(zhí)行怀读,第二種是action文件夾中寫(xiě)诉位,通過(guò)action(實(shí)時(shí)操作)觸發(fā)。
1.初始化獲取所有快遞訂單菜枷,在client/modules/orderControl/containers/index.js文件中苍糠。
調(diào)用getGuestOrders方法具體為:
_Meteor.call('GuestOrder.methods.expressOrders', { condition, sort: _sort }, (err, data) => {})
condition為篩選訂單的條件,sort是排序(methods.expressOrders啤誊,在快遞訂單中查找符合條件的訂單)
GuestOrder.methods.expressOrders接口服務(wù)端的方法在server/methods/GuestOrder.js文件中岳瞭,在server端查找方法:
(2)return expressOrders({ condition, sort }); 通過(guò)查看知道這只是中間的方法名連接,
import expressOrders from './guestOrder/web';
Objece.assign()方法是es6的內(nèi)容蚊锹,詳細(xì)可看http://es6.ruanyifeng.com/#docs/object(第9章瞳筏,對(duì)象的擴(kuò)展
的第五點(diǎn)),里面將用法和作用講得十分清晰牡昆。
db.GuestOrder是連接數(shù)據(jù)庫(kù)姚炕,find是查找符合條件的數(shù)據(jù)。
(3)web.js中的方法需要在core/db中注入或者在core/index中注入才能順利使用db.GuestOrder的方法丢烘,GuestOrder必須在db文件中存在柱宦,可以發(fā)現(xiàn)在db中有注入該方法的文件,順著文件找到如下圖播瞳。
(4)在這個(gè)頁(yè)面中的方法真正的連接到數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)掸刊,如下圖。collection是數(shù)據(jù)庫(kù)的方法赢乓,連接數(shù)據(jù)庫(kù)的表格忧侧。所有的數(shù)據(jù)庫(kù)表結(jié)構(gòu)都要在lib/index.js中導(dǎo)出石窑。
(5)在web.js中的方法會(huì)對(duì)數(shù)據(jù)庫(kù)內(nèi)容做處理以及合并等措施,最終return數(shù)據(jù)苍柏,再通過(guò)一步步的方法返回給客戶(hù)端尼斧。
2.訂單管理---已付款---備貨接口姜贡,在client/modules/orderControl/action/index.js文件中調(diào)用stockUp方法试吁,
stockUp: ({ _Meteor, LocalState }, { stockUpData }, callback) => {
_Meteor.call('BoxInfo.methods.purchaseStockUp', { stockUpData }, (stockUpError, stockUpResult)
=> {
callback(stockUpError, stockUpResult);
});
},
(2)傳入的參數(shù)stockUpData(對(duì)象),分別是goods(數(shù)組楼咳,每件商品具體的信息)熄捍,_id,該訂單的id母怜。
(3)在調(diào)用之前需要在client/modules/orderControl/containers/index.js文件注入action中所有的方法
(4)同樣需要在client/main.js中引入action的內(nèi)容余耽,執(zhí)行以下三個(gè)步驟
import orderControlModule from './modules/orderControl';
...orderControlModule.reducer,
app.loadModule(orderControlModule);
(5)和之前查找方法一樣找到BoxInfo.methods.purchaseStockUp,定位到server/methods/boxInfo/web.js文件苹熏,如下圖碟贾,綠色箭頭標(biāo)注的方法是自定義的,并不是db自帶的轨域,文件在server/methods/core/common.js
MongoDB通用方法參考鏈接: http://blog.csdn.net/jession_lin/article/details/60581254
server/methods/core/common.js中的文件袱耽, Object.keys()同樣是es6的語(yǔ)法http://es6.ruanyifeng.com/#docs/object