日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

首秀 Express 框架

發(fā)布時(shí)間:2023/12/13 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 首秀 Express 框架 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 框架特性
    • express的使用
        • 初始化項(xiàng)目:
        • 下載框架模塊:
        • 測(cè)試代碼:
        • 總結(jié)以上代碼:
    • 請(qǐng)求處理的中間件
        • 概念:
        • 中間件——app.use
        • 基本用法:
        • next的用法
    • app.use中間件的應(yīng)用
        • 路由的保護(hù)
        • 網(wǎng)站維護(hù)公告
        • 自定義404(當(dāng)用戶輸入與路由不匹配網(wǎng)址時(shí))
    • 錯(cuò)誤處理中間件
        • 同步錯(cuò)誤處理
          • 總結(jié)上面代碼:
        • 異步錯(cuò)誤
        • 在回調(diào)函數(shù)中使用next
    • 寫(xiě)在最后

框架特性

  • 提供了方便簡(jiǎn)潔的路由定義方式
  • 獲取HTTP請(qǐng)求參數(shù)進(jìn)行了簡(jiǎn)化處理
  • 對(duì)模板引擎支持程度高,方便渲染動(dòng)態(tài)HTML
  • 提供了中間件機(jī)制有效控制HTTP請(qǐng)求
  • 擁有大量第三方中間件對(duì)功能進(jìn)行擴(kuò)展
  • express的使用

    初始化項(xiàng)目:

    npm init -y

    下載框架模塊:

    npm i express

    測(cè)試代碼:

    const express = require('express') const app = express() app.get('/', (req, res) => {// res.send('你好,Express!')//輸出文本res.send({name:'zss'})//輸出json格式對(duì)象 }) app.listen(3000, () => {console.log('Server is running at http://127.0.0.1:3000') })

    總結(jié)以上代碼:

    • 引入express框架模塊
    • send 方法相較于 nodejs 原生的 end 方法更加強(qiáng)大 不同設(shè)置相應(yīng)有的 content-tye
    • 此方法會(huì)自動(dòng)根據(jù)返回的數(shù)據(jù)設(shè)置相應(yīng)的響應(yīng)頭

    請(qǐng)求處理的中間件

    • 中間件就是以對(duì)方法,可以接受客戶端發(fā)來(lái)的請(qǐng)求,可以對(duì)請(qǐng)求作出響應(yīng),
    • 也可以將請(qǐng)求繼續(xù)交給下一 個(gè)中間件繼續(xù)處理
    • 登錄就可以使用中間件進(jìn)行攔截處理

    概念:

    • 中間件主要由兩部分組成:中間件方法以及請(qǐng)求處理函數(shù)
    • 中間件方法由express提供,負(fù)責(zé)攔截請(qǐng)求,請(qǐng)求處理函數(shù)由開(kāi)發(fā)人員提供,負(fù)責(zé)處理請(qǐng)求
    • 其實(shí)路由就是中間件
    app.get('/', (req, res) => {res.send('<h1>hello,express</h1>') // 輸出html文本})//匹配以get方式請(qǐng)求的/路由

    中間件——app.use

    這里以 app.use 中間件為例,講解中間件的用法

  • app.use 匹配所有請(qǐng)求方式和請(qǐng)求路徑,可以直接傳入請(qǐng)求處理函數(shù)
  • app.use 第一個(gè)參數(shù)可以傳入請(qǐng)求地址,代表無(wú)論什么請(qǐng)求方式,只要請(qǐng)求的是這個(gè)地址就接收這 個(gè)請(qǐng)求
  • 基本用法:

    const express = require('express') const app = express() app.use((req, res) => {res.send('你不錯(cuò)!') }) app.get('/', (req, res) => {res.send('我是主頁(yè)') }) app.get('/new', (req, res) => {res.send('我是添加') }) app.listen(3000, () => {console.log('Server is running at http://127.0.0.1:3000') })
    • app.use會(huì)接收所有傳遞方式中的所有路由 導(dǎo)致后面的路由不會(huì)繼續(xù)匹配

    next的用法

    默認(rèn)情況下,如果前面的路由已經(jīng)匹配上,如果后面還有中間件,則不會(huì)執(zhí)行,需要使用 next ,才會(huì) 向后執(zhí)行

    app.use中間件的應(yīng)用

    路由的保護(hù)

    客戶端在訪問(wèn)需要登錄的頁(yè)面時(shí),可以先使用中間件判斷用戶登錄狀態(tài),用戶如果未登 錄,則攔截請(qǐng)求,直接響應(yīng),禁止用戶訪問(wèn)需要登錄的頁(yè)面

  • 如果用戶未登錄

  • 如果用戶已經(jīng)登錄

  • 網(wǎng)站維護(hù)公告

    在所有路由的最上面定義接收所有請(qǐng)求的中間件,直接為客戶端作出響應(yīng),網(wǎng)站正 在維護(hù)中

    自定義404(當(dāng)用戶輸入與路由不匹配網(wǎng)址時(shí))

    const express = require('express') const app = express()app.get('/', (req, res) => {res.send('我是主頁(yè)') }) app.get('/new', (req, res) => {res.send('我是添加') })//當(dāng)用戶訪問(wèn)地址與以上路由均不匹配時(shí) 進(jìn)入下面的路由 因?yàn)橄旅鏁?huì)匹配任何路由 app.use((req, res, next) => {res.status(404).send('你訪問(wèn)的地址不存在') })app.listen(3000, () => {console.log('Server is running at http://127.0.0.1:3000') })

    錯(cuò)誤處理中間件

    程序中有兩類錯(cuò)誤

  • 代碼錯(cuò)誤,這個(gè)在開(kāi)發(fā)調(diào)試階段就可以解決掉
  • 運(yùn)行時(shí)錯(cuò)誤:程序運(yùn)行時(shí)才可能出現(xiàn)的錯(cuò)誤,如讀取的文件不存在,連接數(shù)據(jù)庫(kù)時(shí)數(shù)據(jù)庫(kù)服務(wù)沒(méi)有 啟動(dòng),這類錯(cuò)誤的發(fā)生與我們的代碼沒(méi)有關(guān)系
  • 同步錯(cuò)誤處理

    同步錯(cuò)誤發(fā)生后,錯(cuò)誤處理能夠自動(dòng)捕捉
    下面手動(dòng)的制造一個(gè)錯(cuò)誤并拋出,錯(cuò)誤處理能夠獲取錯(cuò)誤信息


    總結(jié)上面代碼:

    不僅僅局限于手動(dòng)拋出的錯(cuò)誤 錯(cuò)誤中間件才能夠捕獲 還包括同步中的調(diào)用未定義的方法 含有語(yǔ)法錯(cuò)誤的對(duì)象 解析json字符串的錯(cuò)誤

    異步錯(cuò)誤

    異步錯(cuò)誤發(fā)生后,錯(cuò)誤處理中間件無(wú)法自動(dòng)捕捉:使用next執(zhí)行錯(cuò)誤處理

    例如:讀取不存在的文件錯(cuò)誤

    在回調(diào)函數(shù)中使用next


    寫(xiě)在最后

    ?原創(chuàng)不易,還希望各位大佬支持一下\textcolor{blue}{原創(chuàng)不易,還希望各位大佬支持一下}創(chuàng)

    👍 點(diǎn)贊,你的認(rèn)可是我創(chuàng)作的動(dòng)力!\textcolor{green}{點(diǎn)贊,你的認(rèn)可是我創(chuàng)作的動(dòng)力!}點(diǎn)認(rèn)創(chuàng)動(dòng)

    ?? 收藏,你的青睞是我努力的方向!\textcolor{green}{收藏,你的青睞是我努力的方向!}

    ?? 評(píng)論,你的意見(jiàn)是我進(jìn)步的財(cái)富!\textcolor{green}{評(píng)論,你的意見(jiàn)是我進(jìn)步的財(cái)富!}評(píng)見(jiàn)進(jìn)財(cái)

    總結(jié)

    以上是生活随笔為你收集整理的首秀 Express 框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。