更新時(shí)間:2023-10-24 來(lái)源:黑馬程序員 瀏覽量:
Express是基于Node.js平臺(tái),快速、開(kāi)放、極簡(jiǎn)的 Web 開(kāi)發(fā)框架。通俗的理解:Express的作用和Node.js內(nèi)置的http模塊類(lèi)似,是專(zhuān)門(mén)用來(lái)創(chuàng)建 Web 服務(wù)器的。本質(zhì)就是一個(gè) npm 上的第三方包,提供了快速創(chuàng)建 Web 服務(wù)器的便捷方法。
不使用Express,使用Node.js提供的原生http模塊也能創(chuàng)建Web服務(wù)器,http 內(nèi)置模塊用起來(lái)很復(fù)雜,開(kāi)發(fā)效率低;Express
是基于內(nèi)置的 http 模塊進(jìn)一步封裝出來(lái)的,能夠極大的提高開(kāi)發(fā)效率。http內(nèi)置模塊和Express類(lèi)似于瀏覽器中 Web API 和 jQuery
的關(guān)系。后者是基于前者進(jìn)一步封裝出來(lái)的。
對(duì)于前端程序員來(lái)說(shuō),最常見(jiàn)的兩種服務(wù)器,分別是:
Web 網(wǎng)站服務(wù)器:專(zhuān)門(mén)對(duì)外提供 Web 網(wǎng)頁(yè)資源的服務(wù)器。
API 接口服務(wù)器:專(zhuān)門(mén)對(duì)外提供 API 接口的服務(wù)器。
使用 Express,我們可以方便、快速的創(chuàng)建 Web 網(wǎng)站的服務(wù)器或 API 接口的服務(wù)器。
在項(xiàng)目所處的目錄中,運(yùn)行如下的終端命令,即可將 express 安裝到項(xiàng)目中使用:
npm i express@4.17.1
創(chuàng)建基本的 Web 服務(wù)器,具體語(yǔ)法格式如下:
// 1.導(dǎo)入 express const express = require('express') // 2.創(chuàng)建 web 服務(wù)器 const app = express() //3.調(diào)用 app.listen(端口號(hào),啟動(dòng)成功后的回調(diào)函數(shù)),啟動(dòng)服務(wù)器 app.listen(80, () => { console.log('express server running at http://127.0.0.1') })
通過(guò) app.get() 方法,可以監(jiān)聽(tīng)客戶端的 GET 請(qǐng)求,具體的語(yǔ)法格式如下:
//參數(shù)1:客戶端請(qǐng)求的 URL地址 //參數(shù)2:請(qǐng)求對(duì)應(yīng)的處理函數(shù) // req:請(qǐng)求對(duì)象(包含了與請(qǐng)求相關(guān)的屬性與方法) // res:響應(yīng)對(duì)象(包含了與響應(yīng)相關(guān)的屬性與方法) app.get('請(qǐng)求URL',function(req,res){/*處理函數(shù)*/})
通過(guò) app.post() 方法,可以監(jiān)聽(tīng)客戶端的 POST 請(qǐng)求,具體的語(yǔ)法格式如下:
//參數(shù)1:客戶端請(qǐng)求的URL地址 //參數(shù)2:請(qǐng)求對(duì)應(yīng)的處理函數(shù) // req:請(qǐng)求對(duì)象(包含了與請(qǐng)求相關(guān)的屬性與方法) // res:響應(yīng)對(duì)象(包含了與響應(yīng)相關(guān)的屬性與方法) app.post('請(qǐng)求URL',function(req,res){/*處理函數(shù)*/})
通過(guò) res.send() 方法,可以把處理好的內(nèi)容,發(fā)送給客戶端:
app.get('/user', (req, res) => { // 向客戶端發(fā)送 JSON 對(duì)象 res.send({name:'zs',age:20,gender:'男'}) }) app.post('/user') (req, res) => { //向客戶端發(fā)送文本內(nèi)容 res.send('請(qǐng)求成功') })
通過(guò) req.query 對(duì)象,可以訪問(wèn)到客戶端通過(guò)查詢(xún)字符串的形式,發(fā)送到服務(wù)器的參數(shù):
app.get('/', (req, res) => { // req.query 默認(rèn)是一個(gè)空對(duì)象 // 客戶端使用??name=zs&age=20 這種查詢(xún)字符串形式,發(fā)送到服務(wù)器的參數(shù), // 可以通過(guò) req.query 對(duì)象訪問(wèn)到,例如: // req.query.name req.query.age console.log(req.query) })
通過(guò) req.params 對(duì)象,可以訪問(wèn)到 URL 中,通過(guò) : 匹配到的動(dòng)態(tài)參數(shù):
//URL地址中,可以通過(guò):參數(shù)名的形式,匹配動(dòng)態(tài)參數(shù)值 app.get('/user/:id', (req, res) => { // req.params默認(rèn)是一個(gè)空對(duì)象 // 里面存放著通過(guò):動(dòng)態(tài)匹配到的參數(shù)值 console.log(req.params) })
黑馬研究院權(quán)威發(fā)布:為什么前端工程師一定要學(xué)可視化?
2023-10-24黑馬程序員——2023新版React從核心基礎(chǔ)到項(xiàng)目實(shí)戰(zhàn)教程
2023-10-18小程序中實(shí)現(xiàn)頁(yè)面導(dǎo)航:聲明式和編程式
2023-10-17什么是WXSS?相比CSS有哪些擴(kuò)展特性?
2023-10-17form標(biāo)簽有哪些屬性?【form標(biāo)簽5大屬性用法】
2023-10-17Typescript相比JavaScript有哪些優(yōu)勢(shì)?
2023-10-11