node.js 學習第四節 業務邏輯

盡管上次交的作業(想想都是好幾個星期前的事了)--學習數據建模,其實是沒有真正理解的,這幾周我反復看教程和項目中的代碼組織架構,似乎能明白一些了,再補充一些自己的理解。
我們要搭建的后臺項目文件是以MVC的模式來進行組織的。
M--表示模型,組織數據和程序的功能
V--表示視圖,用于處理和用戶的交互
C--表示控制器,負責將視圖請求轉化給對應的模型

具體在我們學習的項目--實現圖片交換功能里,比如通過evergrow 腳手架一鍵生成的model文件,通常都包含四個文件:

yo evergrow:model user
user-controller.js
user-manage.js
user-model.js
user-routes.js

yo evergrow:model Image
image-controller.js
image-manage.js
image-model.js
image-routes.js

從這四個文件我能理解就已經包含了 MVC 中的 MC ,而這個 M 老師的教程中說不僅僅包含數據模型,還包括數據處理,即業務邏輯部分。那對應的就是?-model.js與~-manage.js這兩個文件模塊。那這個 C 對應的就是 ~-controller.js 和~-routes.js 這兩個文件模塊。
只是我也好奇,為啥 MVC中的 V 它還得單獨一鍵生成不一樣的四個文件,

yo evergrow:view Image
view/image/imageList.html
view/image/imageProfile.html
public/js/image/imageList.js
public/js/image/imageProfile.js

由于這個視圖部分涉及到顯示給用戶的界面如html , css , js 等這些前端的內容,表示還沒看懂,還得努力學!

理解了以上這些大致的架構,對于教程中一節一節的內容感覺就容易些了。

第一部分 業務邏輯

這一節,我主要記住,業務邏輯代碼的組織結構和規律。
具體解析image-manager.js這個模塊里的代碼。


屏幕快照 2017-06-13 下午9.54.11.png

在解析代碼之前,要特別強調一下老師教程中的這段話,值得反復讀:

其實,寫代碼和搭樂高積木差不多。代碼的一個變量,一個函數,可以看作是一個樂高的最小元件。每一個 JavaScript 文件,就像是樂高的一個小人,小車或小屋。最后我們實現的整個 Node.js 項目,就是整個宏大的樂高場景。
我們引用模塊其實和尋找合適的積木是一樣的。通過把自己寫的,別人已經拼好的,進行恰當的組合,就可以完成千變萬化的作品。

因為這段話,我明白了為啥要 require()那么多東西,也明白了干嘛要寫這么多~.js文件,它們到底要干嘛!好的類比真的好偉大!

正式進入代碼解析

  • 上面代碼的前三句是模塊引用。有全局模塊 lodash (一套工具庫)和項目本身的 image-model 和 db-manager。項目本身的模塊以文件相對路徑來引用,全局模塊就只需要名字。
  • module.exports={} 里封裝的就是 image-manager.js 這個文件模塊要申明的功能,這些功能包括最基礎的 CRUD數據操作,create (C - Create), load (R - Read), update (U - Update), remove (D - Delete) 和 list (批量 Read)。
  • function(){} 部分就是 module.exports={} 里申明的方法的具體實現辦法,一個方法對應一個相同名稱的函數。
  • 這意味著如果要修改或添加某個功能,上述代碼的三個部分可能都需改動,起碼得改動兩個部份。
  • 教程中的兩個功能實操代碼,看是看明白了,只是老師布置的作業,寫個 reject 的方法并導出,沒理解這個reject 的業務要求是 什么,是要拒絕什么?是用戶新創建的圖片,沒審核通過的拒絕被返回?不對呀,沒明白,還得請教老師!
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,533評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,055評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,365評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,561評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,346評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,889評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,978評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,118評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,637評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,558評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,739評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,246評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,980評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,619評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,347評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,702評論 2 370

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,592評論 25 707
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,147評論 4 61
  • 沈從文筆下的《邊城》讓我們知道了‘鳳凰古城’,與鳳凰古城相聚不遠的地方,有一個里耶古城。這樣一個美麗的地方。在鳳凰...
    綠芒果君閱讀 690評論 0 0
  • 兩個月前,在金華一家美發店當吹頭小哥的20歲小伙子陳飛雄,被網友拍了一組照片放到網上,瞬間爆紅,僅僅兩個月時間,他...
    娛觀閱讀 148評論 0 0
  • 聽著媽媽均勻的呼吸 確定媽媽睡著了 就像小時候媽媽哄我一樣 等我睡著了 再去納一雙鞋底 安靜的夜里 別人家的燈仍然...
    掃云閱讀 467評論 0 2