express框架學(xué)習(xí)

  1. url 和 資源的 映射 ( 一一對(duì)應(yīng) )關(guān)系
    前端 發(fā)送一個(gè)請(qǐng)求 必須要有一個(gè)請(qǐng)求地址url
    后端 根據(jù)這個(gè)前端請(qǐng)求的地址url, 響應(yīng)一些數(shù)據(jù)回去.
  1. express簡(jiǎn)單使用 (了解)
    1) 新建一個(gè)項(xiàng)目文件夾 app

    2) 進(jìn)入這個(gè)文件夾 初始化項(xiàng)目 生成 package.json
        cd app
        npm init -y

    3) 局部安裝(在當(dāng)前項(xiàng)目文件夾里面安裝)express,并且保存到 依賴列表 里面
        cnpm i express --savex

        備注: 裝完以后 會(huì)生成一個(gè) node_modules 文件夾, express就在里面(npm 下載的第三方模塊都在里面)

    4) 在當(dāng)前目錄新建一個(gè) app.js 文件 在這個(gè)文件里面來 寫 express 的代碼
        a) 引入express模塊
            const express = require('express');

        b) 使用express() 方法 創(chuàng)建一個(gè) app 應(yīng)用
            const app = express();

        c) 使用 app 來 接收前端的請(qǐng)求 (get方式  post方式)
            app.get('前端請(qǐng)求的url', (req, res) => {
                // req :  請(qǐng)求對(duì)象 負(fù)責(zé)接收前端(瀏覽器 )發(fā)送過來的數(shù)據(jù)
                // res:  響應(yīng)對(duì)象 負(fù)責(zé)響應(yīng)數(shù)據(jù)給前端(后端給前端發(fā)送數(shù)據(jù))
            })

        d) 監(jiān)聽端口
            app.listen(端口號(hào), () => {
                console.log('服務(wù)器啟動(dòng)成功...')
            })
  1. express-generator腳手架的使用(快速生成一個(gè)項(xiàng)目的工程目錄)
    1) 全局安裝 express-generator (安裝它的目的 是為了 運(yùn)行 express命令 )
        cnpm i express-generator -g

        備注: 可以運(yùn)行命令 express --version 檢測(cè)一下 是否能使用
    
    2) 可以使用 express 命令 來快速從創(chuàng)建一個(gè)項(xiàng)目目錄
        express 項(xiàng)目文件夾的名字 -e
        示例: express demo -e

        備注: 
            項(xiàng)目文件夾的名字:  會(huì)自動(dòng)生成一個(gè)項(xiàng)目文件夾
            -e:  使用 ejs 模板

    3) 進(jìn)入項(xiàng)目目錄, 運(yùn)行 cnpm i, 一次性安裝所有的依賴模塊
        cd demo 
        cnpm i

    
    4) 啟動(dòng)項(xiàng)目
        a)  方式一: (不推薦)
            npm run start  (start有點(diǎn)特殊 可以縮寫 npm start)

            備注: npm run 可以運(yùn)行 package.json 里面 script里面的內(nèi)容

        b)  方式二 (*****推薦)
            i) 打開 app.js 文件 , 在文件尾部(在暴露出去之前),可以自己監(jiān)聽端口
                app.listen(端口號(hào), () => {
                    console.log('服務(wù)器啟動(dòng)成功...')
                })

            ii) 啟動(dòng)項(xiàng)目
                node app

        補(bǔ)充:  因?yàn)槊看味家獎(jiǎng)臃?wù)器代碼, 都需要重啟服務(wù)器,很煩
               可以全局安裝一個(gè)模板 nodemon 
               1) 全局安裝 nodemon
                   cnpm i nodemon -g

               2) 使用nodemon 替代 node 啟動(dòng)項(xiàng)目
                  原來:  node app 
                  現(xiàn)在:  nodemon app
  1. 項(xiàng)目目錄詳解:
    bin: 啟動(dòng)目錄 里面包含了一個(gè)啟動(dòng)文件  www 默認(rèn)監(jiān)聽端口是 3000 (不用)
    node_modules:   所有安裝的依賴模塊 都在這個(gè)文件夾里面
    public:  所有的前端靜態(tài)資源  html css image  js 
    routes:  放的是 路由 文件 (默認(rèn)有兩個(gè))
             路由主要定義 url 和 資源 的映射關(guān)系 ( 一一對(duì)應(yīng)關(guān)系  )
             主要用來接收前端發(fā)送的請(qǐng)求 響應(yīng)數(shù)據(jù)給前端

    views: 主要放置 ejs 后端模板文件
    app.js:  入口文件(主文件) 總路由 (其他的路由 要由它來分配)
    package.json:  包描述文件  最重要的是 依賴的模板列表 dependencies
                   依賴列表里面的所有模板 可以通過 cnpm i  一次性全部安裝
  1. 路由分配:
    1) 在routes下面 新建一個(gè)子路由文件
        vip.js

    2) 在主路由文件 app.js里面 改動(dòng) 兩處
        a) 在第8行左右 引入路由
            var vipRouter = require('./routes/vip');

        b) 在25行左右 分配路由  /vip 下面的請(qǐng)求 都交給vip路由處理
            app.use('/vip', vipRouter);

    3) 以上步驟完成, 就可以在vip.js 這個(gè)路由里面 接收前端發(fā)送的 /vip下面的請(qǐng)求

  1. res響應(yīng)對(duì)象(*****)
    res主要負(fù)責(zé) 后端向前端 響應(yīng)(發(fā)送)數(shù)據(jù)(如果接收了請(qǐng)求 不響應(yīng),會(huì)一直掛起(轉(zhuǎn)圈圈))

    主要方法:
        1) res.send() (*****)  // 萬能方法  可以響應(yīng)JSON 字符串 HTML script 
        2) res.json()  // 主要給前端響應(yīng) JSON 數(shù)據(jù)
        3) res.jsonp() // 主要給前端響應(yīng) JSON 數(shù)據(jù)(針對(duì)跨域請(qǐng)求)

        4)  數(shù)據(jù)和模板在后端合并渲染 生成HTML 返回給前端
             res.render('ejs模板文件', {JSON對(duì)象格式的數(shù)據(jù)})
        5) res.download('要下載的文件的路徑', '標(biāo)題')
        6) res.redirect("要跳轉(zhuǎn)到的新的網(wǎng)址url")
        7) res.status(狀態(tài)碼404).render("ejs模板名字", {JSON對(duì)象格式的數(shù)據(jù)})
  1. req請(qǐng)求對(duì)象(*****)
    req主要負(fù)責(zé) 接收前端發(fā)送過來的數(shù)據(jù)(參數(shù))

    主要方法:
        a) 接收 get 方式的請(qǐng)求的參數(shù)
            req.query.參數(shù)的key值

        b) 接收 post 方式的請(qǐng)求的參數(shù)
            req.body.參數(shù)的key值

        c) 補(bǔ)充:
            req.ip  獲取瀏覽器的ip地址
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市看幼,隨后出現(xiàn)的幾起案子佃延,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抹凳,死亡現(xiàn)場(chǎng)離奇詭異漂彤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)坊饶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門泄伪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匿级,你說我怎么就攤上這事蟋滴∪咎” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵津函,是天一觀的道長(zhǎng)肖粮。 經(jīng)常有香客問我,道長(zhǎng)尔苦,這世上最難降的妖魔是什么涩馆? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮允坚,結(jié)果婚禮上魂那,老公的妹妹穿的比我還像新娘。我一直安慰自己稠项,他們只是感情好涯雅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著皿渗,像睡著了一般斩芭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乐疆,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天划乖,我揣著相機(jī)與錄音,去河邊找鬼挤土。 笑死琴庵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仰美。 我是一名探鬼主播迷殿,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼咖杂!你這毒婦竟也來了庆寺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤诉字,失蹤者是張志新(化名)和其女友劉穎懦尝,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壤圃,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡陵霉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伍绳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踊挠。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖冲杀,靈堂內(nèi)的尸體忽然破棺而出效床,到底是詐尸還是另有隱情睹酌,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布扁凛,位于F島的核電站忍疾,受9級(jí)特大地震影響闯传,放射性物質(zhì)發(fā)生泄漏谨朝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一甥绿、第九天 我趴在偏房一處隱蔽的房頂上張望字币。 院中可真熱鬧,春花似錦共缕、人聲如沸洗出。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翩活。三九已至,卻和暖如春便贵,著一層夾襖步出監(jiān)牢的瞬間菠镇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工承璃, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留利耍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓盔粹,卻偏偏與公主長(zhǎng)得像隘梨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舷嗡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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