mvc

mvc是什么时呀?

是一種使用“模型-視圖-控制器”設(shè)計創(chuàng)建Web應(yīng)用程序的模式

model:

負(fù)責(zé)跟數(shù)據(jù)庫之間建立映射關(guān)系和操作數(shù)據(jù)庫
由于model有兩個功能张漂,所以將其劃分為model和server兩個文件夾

model文件夾,負(fù)責(zé)與數(shù)據(jù)庫建立映射關(guān)系

model中index.js負(fù)責(zé)設(shè)置和創(chuàng)建數(shù)據(jù)庫對象以及向數(shù)據(jù)中導(dǎo)入所有的表
其他js文件谨娜,負(fù)責(zé)設(shè)置數(shù)據(jù)表
通常情況下航攒,一張數(shù)據(jù)表就對應(yīng)一個.js文件
我們將表創(chuàng)建好之后會在其中導(dǎo)出一個方法,然后將這個方法在index.js中調(diào)用趴梢,就可以創(chuàng)建一張數(shù)據(jù)表
這個方法調(diào)用在實例化數(shù)據(jù)庫對象之后漠畜,更新數(shù)據(jù)庫之前

server文件夾負(fù)責(zé)操作數(shù)據(jù)庫

server需要用過操作model中建立的表間映射關(guān)系,來對表進(jìn)行增刪改查
一張數(shù)據(jù)表對應(yīng)一個server文件
也就是說坞靶,model中除了index.js憔狞,其他一個js對應(yīng)server中的js文件
所有條件下,文件名都相同

view

前端頁面的渲染(視圖層)

controller

控制層彰阴,負(fù)責(zé)對數(shù)據(jù)進(jìn)行處理
前端給后端發(fā)送請求(req)和后端給前端發(fā)送的響應(yīng)(res)都要在controller層處理
最終由API創(chuàng)建路徑的同時瘾敢,調(diào)用controller層的方法完成整個接口開發(fā)

mvc中文件關(guān)系

一個model文件對應(yīng)一個server文件
一個server文件對應(yīng)一個controller文件
一個controller文件對應(yīng)一個api文件
這些文件名保持一致

通常我們在開發(fā)的時候

1.創(chuàng)建一個config文佳佳,在文件創(chuàng)建一個database.js文件

database.js文件導(dǎo)出的是一個對象,對象中包含著所有與數(shù)據(jù)庫有關(guān)的參數(shù)

2.創(chuàng)建model文件夾

2.1建立index.js文件
導(dǎo)入sequelize模塊簇抵,并解析出Sequelize和DataTypes
導(dǎo)入數(shù)據(jù)庫設(shè)置模塊(config/database)
然后實例化Sequelize類庆杜,創(chuàng)建數(shù)據(jù)庫對象
(在此處導(dǎo)入各個數(shù)據(jù)表)
更新數(shù)據(jù)庫
將所有導(dǎo)入的數(shù)據(jù)白哦導(dǎo)出(只有index.js可以到處所有的數(shù)據(jù)表)
2.2建立數(shù)據(jù)表.js文件
文件名跟數(shù)據(jù)表名保持一致,此文件導(dǎo)出的是一個方法
這個方法需要在index.js中調(diào)用正压,來創(chuàng)建數(shù)據(jù)表
我們只在這個文件中以對象的形式來設(shè)置數(shù)據(jù)表

3.創(chuàng)建server文件夾

3.1server文件夾是對表進(jìn)行操作欣福,所以一張表對應(yīng)一個server文件,文件名與表名保持一致
3.2在文件內(nèi)先引入數(shù)據(jù)表(model中的index.js)
由于model中index.js焦履,是將所有表以對象的形式一起導(dǎo)出
所以我們需要用變量將所需要操作的表單獨接出來
3.3定義數(shù)據(jù)表的增刪改查方法
3.4方法中會將前端發(fā)送過來的數(shù)據(jù)(req.body / req.query)發(fā)給數(shù)據(jù)庫
并將數(shù)據(jù)庫返回的信息發(fā)送給前端(以回調(diào)函數(shù)的形式)
所以每個方法都由兩個參數(shù)
第一個參數(shù):前端發(fā)送過來的數(shù)據(jù)
第二個參數(shù):回調(diào)函數(shù)
3.5把所有數(shù)據(jù)庫的操作方法以對象的形式導(dǎo)出

4.創(chuàng)建controller文件

4.1controller是對數(shù)據(jù)進(jìn)行處理拓劝,所以跟server里的文件成樹立關(guān)系
一個server文件對應(yīng)一個controller文件,名字保持一致
4.2controller中的方法有req和res兩個參數(shù)
req:代表請求
post的請求嘉裤,使用req.body來接收
get的求情郑临,使用req.query來接收
ers:代表相應(yīng)
4.3先引入對應(yīng)的server文件,在定義數(shù)據(jù)的處理方法
server中導(dǎo)出的方法屑宠,每一個方法都要有數(shù)據(jù)的處理方法
4.4在定義的數(shù)據(jù)處理方法中調(diào)用server方法
server方法中的第一個參數(shù):erq.body / erq.query
server方法中的第二個參數(shù):回調(diào)函數(shù)厢洞,在回調(diào)函數(shù)中以res.send()向前端返回數(shù)據(jù)
4.5將所有的數(shù)據(jù)處理方法以對象的形式導(dǎo)出

5.API

5.1使用express中的路由模塊來設(shè)置API路徑
先導(dǎo)入express模塊
再用變量接一下路由模塊
5.2引入controller控制器
一個controller文件對應(yīng)一個API方法,文件名保持一致
5.3使用router中的get或者post方法定義API路徑和請求方式
如果用get方法定義典奉,那么就是get請求方式
如果是post方法定義躺翻,那么就是post請求方式
不管用什么方法定義,他都有兩個參數(shù)
第一個參數(shù):自定義的API路徑
第二個參數(shù):對應(yīng)的controller數(shù)據(jù)處理方法
5.4導(dǎo)出路由模塊router

將每一個API文件卫玖,在app.js文件中引入并掛載
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末公你,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子假瞬,更是在濱河造成了極大的恐慌陕靠,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脱茉,死亡現(xiàn)場離奇詭異剪芥,居然都是意外死亡,警方通過查閱死者的電腦和手機琴许,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門税肪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人榜田,你說我怎么就攤上這事寸认。” “怎么了串慰?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵偏塞,是天一觀的道長。 經(jīng)常有香客問我邦鲫,道長灸叼,這世上最難降的妖魔是什么神汹? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮古今,結(jié)果婚禮上屁魏,老公的妹妹穿的比我還像新娘。我一直安慰自己捉腥,他們只是感情好氓拼,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著抵碟,像睡著了一般桃漾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拟逮,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天撬统,我揣著相機與錄音,去河邊找鬼敦迄。 笑死恋追,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的罚屋。 我是一名探鬼主播苦囱,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼脾猛!你這毒婦竟也來了撕彤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤尖滚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瞧柔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體漆弄,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年造锅,在試婚紗的時候發(fā)現(xiàn)自己被綠了撼唾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡哥蔚,死狀恐怖倒谷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情糙箍,我是刑警寧澤渤愁,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站深夯,受9級特大地震影響抖格,放射性物質(zhì)發(fā)生泄漏诺苹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一雹拄、第九天 我趴在偏房一處隱蔽的房頂上張望收奔。 院中可真熱鬧,春花似錦滓玖、人聲如沸坪哄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翩肌。三九已至,卻和暖如春殊霞,著一層夾襖步出監(jiān)牢的瞬間摧阅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工绷蹲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棒卷,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓祝钢,卻偏偏與公主長得像比规,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拦英,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容

  • MVC 是什么蜒什?MVC構(gòu)成:model負(fù)責(zé)跟數(shù)據(jù)庫建立映射關(guān)系和操作數(shù)據(jù)庫由于model層有兩個功能 所以將其分為...
    Delet閱讀 117評論 0 0
  • MVC是什么? 1.model負(fù)責(zé)跟數(shù)據(jù)庫建立映射關(guān)系和操作數(shù)據(jù)庫由于model有兩個功能疤估,所以將其劃分為mode...
    熙攘_ym閱讀 145評論 0 0
  • 1. mvc設(shè)計模式的構(gòu)成 model(業(yè)務(wù)模型) ? ? 負(fù)責(zé)與數(shù)據(jù)庫建立映射關(guān)系 和 操作數(shù)據(jù)庫 view...
    div式人格閱讀 124評論 0 1
  • 一.什么是Express灾常? Express[https://www.expressjs.com.cn/]是最流行的...
    wulle__閱讀 500評論 0 0
  • 1. mvc設(shè)計模式的構(gòu)成 model(業(yè)務(wù)模型) ? ? 負(fù)責(zé)與數(shù)據(jù)庫建立映射關(guān)系 和 操作數(shù)據(jù)庫 view...
    達(dá)布干m閱讀 155評論 0 0