本篇文章帶大家了解一下Node第三方框架Express,簡單聊聊如何使用好Express框架,希望對大家有所幫助!
1.Express框架介紹
-
1.Express是Nodejs開發(fā)中一個非常重量級的第三方框架,它對于NodeJS服務端就相當于Jquery對于HTML客戶端。
- 如果連Express都不會用,基本上都不好意思跟別人說你會NodeJS
-
2.Express官網(wǎng):
-
www.expressjs.com.cn/
-
expressjs.com/
- 一般我們學習一個新的技術(shù),都是去官網(wǎng)文檔查看它的API,然后多多嘗試,熟能生巧
-
-
3.Express的github地址:https://github.com/expressjs/express
- Express的原作者TJ在node社區(qū)非常的有名,他寫過200多個框架,目前他已經(jīng)將Express交給了朋友維護,宣布不再維護NodeJS框架,轉(zhuǎn)向Go語言(https://github.com/tj)
-
4.Express官網(wǎng)是這樣介紹自己的:基于 Node.js 平臺,快速、開放、極簡的 web 開發(fā)框架。
-
Express一個非常重要的亮點就是它沒有改變nodejs已有的特性,而是在它的基礎上進行了拓展
- 也就是說,使用Express你既可以使用nodejs原生的任何API,也能使用Express的API
-
-
5.Express三大核心功能
-
1.托管靜態(tài)資源
- 第二天講的nodejs實現(xiàn)靜態(tài)服務器功能在express中只需要一行代碼
-
2.路由
- express自帶路由功能,讓Node服務端開發(fā)變得極其簡單
- express支持鏈式語法,可以讓代碼看起來更加簡潔
-
==3.中間件==
-
Express最為核心的技術(shù)和思想,萬物皆中間件
- 中間件雖然理解起來有點困難,但是使用起來非常方便,類似于
bootstrap插件
.
- 中間件雖然理解起來有點困難,但是使用起來非常方便,類似于
-
-
2.下載express
下載指令: npm i express
如果你的網(wǎng)站很慢,可以使用npm config set registry registry.npm.taobao.org/來提升速度
就是淘寶幫你把這個東西下載淘寶的服務器上,然后你在淘寶服務器上下載
3.使用Express
//1.導入模塊 const express = require('express') //2.創(chuàng)建服務器 /* express() 相當于http模塊的http.createServer() */ const app = express() //3.接收客戶端請求 /*(1)express最大的特點就是自帶路由功能,我們無需在一個方法中處理所有請求 * 路由:一個請求路徑對應一個方法(函數(shù)) (2)在express中,每一個請求都是一個單獨的方法 */ app.get('/',(req,res)=>{ //響應客戶端數(shù)據(jù) //express響應數(shù)據(jù) send方法:自動幫我們設置好了響應頭,無需擔心中文亂碼問題 res.send('月下風起') }) app.get('/heroInfo',(req,res)=>{ res.send({ name:'張三', age:20 }) }) //4.開啟服務器 app.listen(3000,()=>{ console.log('服務器啟動成功') })
4-Express響應客戶端數(shù)據(jù)
//1.導入模塊 const express = require('express') //2.創(chuàng)建服務器 /* express() 相當于http模塊的http.createServer() */ const app = express() //3.接收客戶端請求 //文本類型數(shù)據(jù) app.get('/',(req,res)=>{ //響應客戶端數(shù)據(jù) res.send('月下風起') }) //json格式數(shù)據(jù) app.get('/info',(req,res)=>{ //express自動幫我們將js對象轉(zhuǎn)成json響應給客戶端 res.send({ name:'張三', age:20 }) }) //文件類型數(shù)據(jù) app.get('/login',(req,res)=>{ res.sendFile(__dirname + '/login.html') }) //4.開啟服務器 app.listen(3000,()=>{ console.log('服務器啟動成功') })
5.Express托管靜態(tài)資源
http://expressjs.com/en/starter/static-files.html
//1.導入模塊 const express = require('express'); //2.創(chuàng)建服務器 const app = express() //托管靜態(tài)資源(相當于我們之前寫的靜態(tài)資源服務器) /* 1.當請求路徑為/時,express會自動讀取www文件夾中的index.html文件響應返回 2.當路徑請求為www文件夾中的靜態(tài)資源,express會自動拼接文件路徑并響應返回 */ app.use(express.static('www')) //4.開啟服務器 app.listen(3000,()=>{ console.log('success') })
6.第三方中間件使用
-
1.在Express官網(wǎng),有非常多得第三方中間件,它們可以讓我們的Nodejs開發(fā)變得極其簡單
中間件前端的插件,使用后就會給express中的req或者res添加成員
-
2.所有的第三方框架學習套路都是一樣的
- 1.進官網(wǎng),查文檔
- 2.CTRL+C 與 CTRL+V
-
3.第三方中間件使用步驟一般都是固定兩步
-
一: 安裝
npm i xxxx
(官網(wǎng)復制粘貼)- 第三方中間件都需要使用npm安裝,可以理解為是一種特殊的第三方模塊
-
二: 使用
app.use(xxx)
(官網(wǎng)復制粘貼)
-
-
body-parse第三方中間件:解析post請求參數(shù)
- 安裝body-parser :
npm install body-parser
- https://www.npmjs.com/package/body-parser
- 安裝body-parser :
//導入模塊 const express = require('express') //創(chuàng)建服務器 const app = express() //使用第三方中間件 /*所有的第三方模塊思路都是一樣 1.進官網(wǎng),查文檔 2.找examples(使用示例),復制粘貼 a.安裝第三方模塊:`npm i body-parser` b.使用中間件: arr.use(具體用法請復制粘貼) 使用body-parser中間件之后,你的req會增加一個body屬性,就是你的post請求參數(shù) */ //(1)導入模塊 const bodyParser = require('body-parser') // parse application/x-www-form-urlencoded //(2)使用中間件 app.use(bodyParser.urlencoded({ extended: false })) //解析json參數(shù) app.use(bodyParser.json()) app.post('/abc',(req,res)=>{ console.log(req.body) //告訴客戶端我收到的參數(shù) res.send(req.body) }) app.post('/efg',(req,res)=>{ console.log(req.body) //告訴客戶端我收到的參數(shù) res.send(req.body) }) //開啟服務器 app.listen(3000, () => { console.log('success'); })