express中介軟體分三類
阿新 • • 發佈:2021-06-27
中介軟體一般都是通過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') })