首頁(yè)常見(jiàn)問(wèn)題正文

前端Express指的是什么?Express能用來(lái)做什么?

更新時(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)創(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類似于瀏覽器中 Web API 和 jQuery 的關(guān)系。后者是基于前者進(jìn)一步封裝出來(lái)的。

對(duì)于前端程序員來(lái)說(shuō),最常見(jiàn)的兩種服務(wù)器,分別是:

Web 網(wǎng)站服務(wù)器:專門對(duì)外提供 Web 網(wǎng)頁(yè)資源的服務(wù)器。

API 接口服務(wù)器:專門對(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ò)查詢字符串的形式,發(fā)送到服務(wù)器的參數(shù):

app.get('/', (req, res) => {
  // req.query 默認(rèn)是一個(gè)空對(duì)象
  // 客戶端使用??name=zs&age=20 這種查詢字符串形式,發(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)
})


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!