基於express開發Node伺服器

font發表於2021-11-29

如果一個專案只是要實現高併發讀取,常常會做一個WebService(前端伺服器)--node伺服器

基於express框架開發node服務

1.引入express庫

-const express = require('express')

2.埠啟動

-Express.listen(埠, function() {回撥函式}

3.開發介面

-Express.get(路由,RequestHandler 請求助手(處理器))

/**
 * @description 開發一個基於express來實現的伺服器
 */

// 引入express庫
const express = require('express')

// function express(): core.Express
// express是一個方法,這個方法執行以後會返回一個Express例項
const Express = express()

// 需要監聽一個埠來啟動一個服務
// listen(port: number, callback?: () => void)
Express.listen(8081, function() {
    console.log('service started on port 8081.')
})

// 開發介面
// get(path: Route, ...handlers: RequestHandler[])
// get方法接收兩個引數,第一個引數為path:Route(路由) 它應該是定義一個介面地址(location.path 是除引數、協議、ip、埠,剩下的就是地址)
// ...handlers: RequestHandler[] -- RequestHandler 請求助手(處理器),負責請求和響應的一個函式,[] 表示處理器可以有多個,... 展開運算子;
// get方法可以接收n(n >= 2)個引數,從第二個引數開始都為當前請求的業務處理器

const list = [
    {id: 'admin', name: '超集管理員', sex: '女'}
]

// RequestHandler(req: Request, res: Response, next: NextFunction) => RequestHandler 為一個方法
// 這個方法會入參三個,第一個Request 請求物件,第二引數為響應物件
// next 下一步的函式
Express.get('/user/info', function(req, res, next) {
    // 接收一個id引數
    // 傳遞在?後邊的引數在前端叫:
    // req.query獲取到的是一個Express格式化以後的一個物件
    console.log(req.query)

    // 通過find方法可以獲取到資料
    let user = list.find(it => it.id === req.query.id)
    
    // 判斷user是否存在,來決定是否執行下一個處理函式,如果需要執行下一個處理函式,呼叫next()
    if (!user) {
        res.send({code: 400, message: '使用者不存在'})
    } else {
        next()
    }
}, function(req, res, next) {
    let user = list.find(it => it.id === req.query.id)
    
    // 傳送資料到前端
    res.send({code: 200, data: user})
})

 

相關文章