如果一個專案只是要實現高併發讀取,常常會做一個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}) })