MVC

  1. MVC 是什么?
    MVC構成:
    model
    負責跟數(shù)據(jù)庫建立映射關系和操作數(shù)據(jù)庫
    由于model層有兩個功能 所以將其分為 model 和 server兩個文件夾
    model文件夾負責與數(shù)據(jù)庫建立映射關系
    model中 index.js 負責設置和創(chuàng)建數(shù)據(jù)庫對象 以及向數(shù)據(jù)庫中導入所有的表
    其他.js文件 負責設置數(shù)據(jù)表
    通常一張數(shù)據(jù)表對應一個 .js 文件
    我們將表創(chuàng)建好之后 會將其中導出一個方法 然后將這個方法在index.js中調(diào)用就可以創(chuàng)建一張數(shù)據(jù)表
    這個方法調(diào)用在實例化數(shù)據(jù)庫之后 更新數(shù)據(jù)庫之前
    server文件夾負責操作數(shù)據(jù)庫
    server需要通過操作model中建立的數(shù)據(jù)表之間映射關系 來對表進行增刪改查
    一張數(shù)據(jù)表 對應一個server文件
    也就是說 model文件中除了 index.js 其他js文件對應一個server中js文件
    所有情況下 文件名相同
    view
    前端頁面的渲染(也叫視圖層)
    controller
    負責對數(shù)據(jù)進行處理(也叫控制層)
    前端給后端發(fā)送的請求(req)和后端給前端發(fā)送的響應(res)都要在 controller層處理

    最終由API創(chuàng)建路徑 創(chuàng)建路徑的同時 調(diào)用controller層的方法 完成整個接口開發(fā)(API不屬于MVC流程)

  2. MVC中 文件的關系
    一個model文件 對應 一個server文件
    一個server文件 對應 一個controller文件
    一個controller文件 對應 一個API文件
    這些文件的文件名保持一致

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

    1. 先創(chuàng)建一個config文件夾 在文件夾下創(chuàng)建一個database.js文件
      database.js文件 導出的是一個對象 對象中包含著所有與數(shù)據(jù)庫有關的參數(shù)
    2. 創(chuàng)建model文件夾
      2.1 創(chuàng)建 index.js 文件
      導入sequelize模塊 并解析出 Sequelize 和 DataTypes
      導入數(shù)據(jù)庫設置模塊(config/database)
      實例化 Sequlize 類 創(chuàng)建數(shù)據(jù)庫對象
      (在此處導入各個數(shù)據(jù)表)
      更新數(shù)據(jù)庫
      將所有導入的數(shù)據(jù)表導出(只有 index.js 才能導出數(shù)據(jù)表)
      2.2 建立 數(shù)據(jù)表.js 文件
      文件名和數(shù)據(jù)表名保持一致(此文件導出的是一個方法)
      這個方法 需要在 index.js 中調(diào)用 來創(chuàng)建數(shù)據(jù)表
      我們只在這個文件中 以對象的形式來設置數(shù)據(jù)表
    3. 創(chuàng)建 server 文件夾
      3.1 server文件夾 是對數(shù)據(jù)表進行操作 所以一張數(shù)據(jù)表對應一個server文件
      文件名和表名保持一致
      3.2 在文件內(nèi) 先引入數(shù)據(jù)表(model中的index.js)
      由于 model 中 index.js 是將所有數(shù)據(jù)包以對象的形式一起導出
      所以我們需要用變量 將所需要操作的那個表單獨接出來
      3.3 定義數(shù)據(jù)表的增刪改查方法
      3.4 方法中 會將1前端發(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ù)庫的操作方法 以對象的形式導出
    4. 創(chuàng)建 controller 文件夾
      4.1 controller 是對數(shù)據(jù)進行處理 所以跟server中的文件成對應關系
      一個server文件 對應 一個controller文件 名字保持一致
      4.2 controller中的方法 有req和res兩個參數(shù)
      req代表請求
      post請求 使用 req.body 來接收
      get請求 使用 req.query 來接收
      res代表響應
      4.3 先引入對應的 server 文件 再定義數(shù)據(jù)處理方法
      server文件中 導出的方法 都有一個數(shù)據(jù)處理方法
      4.4 在定義的數(shù)據(jù)處理方法中 調(diào)用 server 方法
      server方法中 第一個參數(shù) req.body/req.query
      第二個參數(shù) 回調(diào)函數(shù) 在回調(diào)函數(shù)中 以 res.send()方法向前端返回數(shù)據(jù)
      4.5 將所有的數(shù)據(jù)處理方法 以對象的形式導出
    5. 創(chuàng)建api文件夾
      5.1 使用 express 中的路由模塊 來設置api路徑
      先導入 express 模塊
      再用變量接一下路由模塊
      5.2 引入 controller 控制器
      一個controller文件 對應 一個api文件 文件名保持一致
      5.3 使用router中的get或post方法 定義api的路徑和請求方式
      如果用get()方法定義 那么就是get的請求方式
      如果用post()方法定義 那么就是post的請求方式
      不管用什么方法定義 他都有兩個參數(shù)
      第一個參數(shù) 自定義的api路徑
      第二個參數(shù) 對應的 controller 數(shù)據(jù)處理方法
      5.4 導出路由模塊 router
    6. 將每一個api文件 在app.js中引入并掛載
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末告匠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子离唬,更是在濱河造成了極大的恐慌后专,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件输莺,死亡現(xiàn)場離奇詭異戚哎,居然都是意外死亡,警方通過查閱死者的電腦和手機嫂用,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門型凳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嘱函,你說我怎么就攤上這事甘畅。” “怎么了往弓?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵疏唾,是天一觀的道長。 經(jīng)常有香客問我函似,道長荸实,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任缴淋,我火速辦了婚禮准给,結果婚禮上,老公的妹妹穿的比我還像新娘重抖。我一直安慰自己露氮,他們只是感情好,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布钟沛。 她就那樣靜靜地躺著畔规,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恨统。 梳的紋絲不亂的頭發(fā)上叁扫,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機與錄音畜埋,去河邊找鬼莫绣。 笑死,一個胖子當著我的面吹牛悠鞍,可吹牛的內(nèi)容都是我干的对室。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼掩宜!你這毒婦竟也來了蔫骂?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤牺汤,失蹤者是張志新(化名)和其女友劉穎辽旋,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體檐迟,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡补胚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年锅减,在試婚紗的時候發(fā)現(xiàn)自己被綠了伐坏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡桦沉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纯露,到底是詐尸還是另有隱情,我是刑警寧澤埠褪,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站贷掖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏苹威。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一牙甫、第九天 我趴在偏房一處隱蔽的房頂上張望调违。 院中可真熱鬧,春花似錦技肩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至羡洁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間筑煮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工真仲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留初澎,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓碑宴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親延柠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

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

  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架贿条,建立于...
    Hsinwong閱讀 22,353評論 1 92
  • 本文首先描述 MVC 模式是什么增热,然后針對 MVC 的不足發(fā)表了作者的個人觀點,隨后引出了基于 REST 架構實現(xiàn)...
    java菜閱讀 826評論 0 2
  • ASP.NET是使用HTML悄蕾、CSS、JS和服務端腳本創(chuàng)建Web頁面和網(wǎng)站的開發(fā)框架帆调。 ASP.NET支持三種開發(fā)...
    JunChow520閱讀 1,660評論 0 2
  • 簡介: JSP****全名為Java Server Pages,中文名叫java 服務器 頁面番刊,其根本是一個簡化的...
    熊少文閱讀 653評論 0 0
  • Spring MVC應用 Spring MVC介紹 MVC體系結構 三層架構在B/S架構中影锈,系統(tǒng)標準的三層架構包括...
    小山雀閱讀 380評論 0 0