簡體   English   中英

如何僅在具有Express和Node的POST上添加中間件

[英]How to add a middleware only on POST with Express and Node

我有一個中間件,我想只在http方法發布時應用。

以下工作正常,但我覺得有更好的方法:

'use strict'

const   express = require('express'),
        router = express.Router()


router.use((req, res, next) => {
    if (req.method === 'POST') {
        // do stuff
    }

    return next()
})

module.exports = router

我想做這樣的事情,但它不起作用:

'use strict'

const   express = require('express'),
        router = express.Router()


router.post((req, res, next) => {
    // do stuff

    return next()
})

module.exports = router

你可以使用*符號:

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

app.post('*', (req, res, next) => {
  console.log('POST happen')
  next();
})

app.post('/foo', (req, res) => {
  res.send('foo');
});

app.post('/bar', (req, res) => {
  res.send('bar');
});

app.listen(11111);

這將在POST /foo上使用“foo”字符串進行響應,在POST /bar上使用“bar”字符串進行響應,但始終將“POST occurrence”發送到控制台。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM