首秀 Express 框架
文章目錄
- 框架特性
- 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ě)在最后
框架特性
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.use
這里以 app.use 中間件為例,講解中間件的用法
基本用法:
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è)面
網(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ò)誤處理
同步錯(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)題。
- 上一篇: 网传吉利雷神混动技术抄袭奇瑞!吉利发声回
- 下一篇: 元模型驱动