ホームページ > 記事 > ウェブフロントエンド > Expressミドルウェアとは何ですか? Nodeでどうやって使うの?
Express ミドルウェアとは何ですか? Node でそれを使用するにはどうすればよいですか? Expressミドルウェアの簡単な使い方については以下の記事で紹介していますので、ぜひ参考にしてください。
本質的には関数処理関数です注: ミドルウェア関数の仮パラメータリスト、次のパラメータを含める必要があります。ルーティング処理関数には req と res のみが含まれており、
// next参数必须在最后一个传入 const mw = (req, res, next) => { ... // next()必须在最后调用 next() }
const mw = (req, res, next) => { next() } const mw1 = (req, res, next) => { next() } // 全局生效的中间件,中间件调用顺序以传入顺序为准 server.use(mw,mw1)
const mw = (req, res, next) => { next() } const mw1 = (req, res, next) => { next() } // 局部生效的中间件 server.get('/',mw,(req,res)=>{ res.send('路径:/') }) // 定义多个局部生效的中间件 // 1、直接逗号分隔 server.get('/',mw,mw1,(req,res)=>{ res.send('路径:/') }) // 2、或者使用数组包含 server.get('/',[mw,mw1],(req,res)=>{ res.send('路径:/') })
const mw = (req, res, next) => { // 添加属性 req.startTime=new Date() next() }
#ルーティング レベルのミドルウェア
##サードパーティ ミドルウェア
// 全局生效的中间件(应用级别的中间件) server.use(mw,mw1) // 局部生效的中间件(应用级别的中间件) server.get('/',mw,mw1,(req,res)=>{ res.send(`请求进入服务器的时间:${req.startTime}`) })
const router = require('./router/router') // 路由级别的中间件 router.use((req,res,next)=>{ next() })
Express 組み込みミドルウェア
Since Express 4.16.0 バージョンの Express には、一般的に使用される 3 つのミドルウェアが組み込まれており、Express プロジェクトの開発効率とエクスペリエンスが大幅に向上します。
express.static fast hosting static HTML ファイル、画像、CSS スタイルなどのリソース (互換性なし)
// 人为制造错误 server.get('/err', (req, res) => { throw new Error('人为抛出错误!!!') res.send('err Page') }) // 定义错误级别的中间件 server.use((err, req, res, next) => { console.log('发生了错误:' + err.message); res.send('Error:'+err.message) next() })
express@4.16.0
より前のバージョンでは、サードパーティのミドルウェアrequireを使用してミドルウェアをインポートします。
注: Express の組み込みのexpress.urlencoded ミドルウェアは、サードパーティのミドルウェアのボディパーサーに基づいてさらにカプセル化されています。
ノード関連の知識の詳細については、nodejs チュートリアル を参照してください。
以上がExpressミドルウェアとは何ですか? Nodeでどうやって使うの?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。