1. 程式人生 > 其它 >express中介軟體分三類

express中介軟體分三類

中介軟體一般都是通過i修改req 或res物件來為後續的處理提供遍歷的使用

中介軟體分類 next 放行函式

  • use(function(req,res,next){})
  • use('請求路徑',function(req,res,next){})
  • get('請求路徑',function(req,res,next){})
  • post('請求路徑',function(req,res,next){})

錯誤日記處理方式

const express=require('express')
const fs = require('fs')
const app=express();


app.get(
'/', (req, res) => { //通過JSON.parse解析查詢字串中的某個 try { const data = JSON.parse('{abc'); res.json(data); } catch (e) { const error_log = ` 錯誤名:${e.name} 錯誤訊息:${e.message} 錯誤堆疊:${e.stack} 錯誤時間:${new Date()} ` fs.appendFile(
'./err_log.txt', error_log, (err) => { res.writeHead(500, {}) res.end('500 伺服器正忙,請稍後重試') }) } }) app.get('/a', (req, res, next) => { fs.readFile('./a.text', (err, data) => { if (err) { //這裡呼叫的next會被app.use((err,req,res,next))這個中介軟體匹配到 next(err) } }) })
//該中介軟體只有被帶有引數的next才能呼叫到 app.use((err, req, res, next) => { const error_log = ` 錯誤名:${e.name} 錯誤訊息:${e.message} 錯誤堆疊:${e.stack} 錯誤時間:${new Date()} ` fs.appendFile('./err_log.txt', error_log, (err) => { res.writeHead(500, {}) res.end('500 伺服器正忙,請稍後重試') }) }) //404處理中介軟體 app.use((req,res,next)=>{ res.end('404') }) app.listen(3000,()=>{ console.log('server start and listen at 3000') })