如何使用Express和Node仅在POST上添加中间件
我有一个中间件,只有在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”string进行响应,在POST /bar
上使用“bar”string进行响应,但始终将“POST发生”logging到控制台。