您好,登錄后才能下訂單哦!
今天小編給大家分享一下Node中的Express和路由模塊怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
Express是基于Node.js平臺,快速、開放、極簡的Web開發框架。Express的作用和Node.js內置的http模塊類似,是專門用來創建Web服務器的。Express的本質:就是一個 npm 上的第三方包,提供了快速創建 Web 服務器的便捷方法。其中文網為:Express中文網 。當然不使用Express使用內置的http模塊也能創建Web服務器,但http模塊用起來及其復雜,開發效率極低,Express是基于內置的http模塊進一步封裝出來的,能極大的提高開發效率。
對于前端程序員來說,最常見的兩種服務器分別是:Web網站服務器(專門對外提供Web網頁資源的服務器);API接口服務器(專門對外提供的API接口服務器)。使用Express,可以方便快捷的創建Web網站服務器和API接口服務器。
在項目所處目錄中,終端運行如下命令,即可將express安裝到項目中:(默認最新版本)
npm install express
創建基本的服務器:與內置http模塊常見的服務器比較 http內置模塊書寫
// 導入 express 模塊
const express = require('express')
// 創建 web 服務器
const app = express()
// 調用 app.listen(端口號,啟動成功后的回調函數),啟動服務器
app.listen(8081,()=>{
console.log('express server running at http://127.0.0.1:8081');
})
監聽GET請求:通過 app.get() 方法,可以監聽客戶端的 GET 請求,具體的語法格式如下:
// 參數1:客戶端請求的URL地址
// 參數2:請求對應的處理函數
// req:請求對象(包含請求相關屬性和方法);res:響應對象(包含響應相關的屬性和方法)
app.get('請求的URL',function(req,res){/*處理函數*/})
監聽POST請求:通過app.post()方法,可以監聽客戶端的POST請求,具體的語法格式如下:
// 參數1:客戶端請求的URL地址
// 參數2:請求對應的處理函數. req:請求對象(包含請求相關屬性和方法);res:響應對象(包含響應相關的屬性和方法)
app.post('請求的URL',function(req,res){/*處理函數*/})
創建以get和post請求的Web服務器,創建成功,用Apifox接口測試工具進行測試:
// 導入 express 模塊
const express = require('express')
// 創建 Web 服務器
const app = express()
// get請求
app.get('/user',(req,res)=>{
// 向客戶端響應一個 json 對象
res.send({name:'張三',age:18})
})
// post請求
app.post('/home',(req,res)=>{
// 向客戶端響應一個 文本字符串
res.send('請求成功!')
})
app.listen(80,()=>{
console.log('express server running at http://127.0.0.1:80');
})
獲取URL的查詢參數:通過req.query對象,可以訪問到客戶端通過查詢字符串的形式,發送給服務器的參數:
app.get('/',(req,res)=>{
// 通過 req.query 可以獲取到客戶端發送過來的查詢參數,默認情況下,req.query 是一個空對象
console.log(req.query);
res.send(req.query)
})
獲取URL中的動態參數:通過 req.params 對象,可以訪問到 URL 中,通過 : 匹配到的動態參數:
// 這里的id是一個動態參數
app.get('/user/:id',(req,res)=>{
// req.params 是動態匹配到的 URL 參數,默認也是一個空對象
console.log(req.params);
res.send(req.params)
})
express提供了一個非常好用的函數,叫做 express.static(),通過它我們可以很方便地創建一個靜態資源服務器,例如:通過以下代碼就可以將 test 目錄下的圖片、CSS文件、JS文件對外開發使用了,我們可以通過 http://127.0.0.1/index.htm 進行訪問。
如果想托管多個靜態資源目錄,多次調用 express.static() 函數即可。
app.use(express.static('test'))
注意:Express在指定的靜態目錄中查找文件,并對外提供資源的訪問路徑,因此靜態資源的目錄名不會出現在URL中。 如果希望在托管靜態資源訪問路徑之前,掛載路徑前綴,則可以使用如下方式:
// 在 express.static() 方法前面添加想要的路徑前綴
app.use('text',express.static('test'))
在編寫調試Node.js項目時,如果修改了項目代碼,則需要手動頻繁的close掉,然后重新啟動非常的繁瑣。我們可以使用 nodemon 這個工具,它能夠監聽項目文件的變動,當代碼修改后,nodemon會自動幫助我們重啟項目,極大地方便了開發與測試。
在終端運行如下命令,即可將 nodemon 安裝為全局可用的工具:
npm install nodemon -g
安裝完成之后,將之前的命令 node+文件名稱 換成 nodemon+文件名稱 即可自動重啟項目進行監聽,如下:
在Express中,路由指的是客戶端的請求與服務器之間的映射關系。Express中的路由分三部分組成:請求的類型、請求的URL地址、處理函數。
每當一個請求到達服務器之后,需要先經過路由的匹配,只有匹配成功之后,才會調用對應的處理函數。在匹配時,會按照路由的順序進行匹配,如果請求類型和請求的URL同時匹配成功,則Express會將這次請求轉交到對應的function函數進行處理。
// 導入 express 模塊
const express = require('express')
// 創建 Web 服務器
const app = express()
// 掛載路由
app.get('/',(req,res)=>{ res.send('hello world'); })
app.post('/',(req,res)=>{ res.send('hello ok'); })
// 監聽服務
app.listen(80,()=>{
console.log('express server running at http://127.0.0.1');
})
為了方便對路由進行模塊化管理,Express不建議將路由直接掛載到app上,而是推薦將路由抽離為單獨的模塊。
創建路由模塊:
// 導入 express 模塊
const express = require('express')
// 創建 Web 服務器
const app = express()
// 掛載路由
app.get('/',(req,res)=>{ res.send('hello world'); })
app.post('/',(req,res)=>{ res.send('hello ok'); })
// 監聽服務
app.listen(80,()=>{
console.log('express server running at http://127.0.0.1');
})
注冊路由模塊:
// 導入 express 模塊
const express = require('express')
// 創建 服務器
const app = express()
// 導入路由模塊
const router = require('./router')
// 注冊路由模塊
app.use(router)
// 監聽服務
app.listen(80,()=>{
console.log('express server running at http://127.0.0.1');
})
如果想為路由模塊添加前綴,方式也很簡單,如下:(即可全局模塊路徑前有該前綴)
以上就是“Node中的Express和路由模塊怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。