node之express基本使用

傳統node服務器開發需要創建httpserver服務,需要讀取文件,還需要設置返回文件的格式。這和業務邏輯沒有任何關係。express框架簡化了這些操作。

一、基本入門

基本的安裝包

npm install express

express返回一個函數,函數執行結果是一個封裝好的服務器實例。

const express = require('express')
const server = express()

server.get('/',(req,res)=>{
    res.send('hello express')
})

server.listen(8124)
console.log('Server running at http://localhost:8124')

創建了server實例之後監聽8124端口。

server.get是設置對以get方法請求服務器的響應。

核心http模塊的http.createserve模塊中的res.end變成了res.send。它可以自動設置返回文本的格式和編碼

在網頁請求Server running at http://localhost:8124響應結果如下

自動設置的響應頭如下所示

服務端可以直接返回對象數據而無需格外轉換成二進制

server.get('/list',(req,res)=>{
    res.send({"name":"wxs"})
})

自動設置爲json格式。

此外,express也無需引入query.parse核心模塊來講請求中的query字符串解析成對象。req.query直接就是對象類型。

二、中間件

express可以爲所有請求設置中間件。語法是使用next參數。一般使用express.use進行攔截。他會對所有請求進行攔截,不論請求方法。

比如我要要對用戶登陸狀態進行檢查,如果登陸狀態爲true則顯示登陸成功,否則則顯示登陸失敗。服務端可以設置中間件如下顯示。

server.use((req,res,next)=>{
    if(req.query.login_status == 'true'){
        next()
    }else{
        res.send('登陸失敗')
    }
})

server.get('/',(req,res)=>{
    res.send('登陸成功')
})

如果login_status ,則執行next函數,next是use內函數的第三個參數,如果執行next,則會進入下一個中間件。請求從上到下依次經過中間件。直到res.send()或者報錯。

此時請求經過第一個serve.use,檢查login_status ,如果爲true則放行到下一個中間件。頁面響應如下

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章