通过自定义中间件拿到请求参数的用户id const authentication = (req, res, next) => { if (excludeUrl.includes(req.url)) { next() return } const token = req.headers['authorization']?.split(' ')[1] if (token) { const payload = JWT.verify(token) if (payload) { // 重新计算token过期时间 const { username, id } = payload const newToken = JWT.generate({ username, id }, '1h') res.header('Authorization', newToken) req.body = { ...req.body, id }//这里把id放到req.body里面 next() return } // 否则token过期 则返回401 res.status(401).send(sendData(false, '登录超时,请重新登陆')) return } next() } app.js app.use(authentication) app.use('/', indexRouter) app.use('/users', usersRouter) userRouter var express = require('express') var router = express.Router() const userController = require('../controllers/users') const multer = require('multer') const upload = multer({ dest: 'public/avatars/' }) router.get('/get-userinfo', userController.getUserInfo) router.post( '/update-avatar', upload.single('avatar'), userController.updateAvatar ) module.exports = router userController const userServices = require('../services/users') const userController = { getUserInfo: async (req, res) => { console.log('🚀 getUserInfo: req:', JSON.stringify(req.body)) }, updateAvatar: async (req, res) => { console.log('🚀 updateAvatar: req.body:', JSON.stringify(req.body)) }, } module.exports = userController 打印的结果是  想请问下为什么多了个中间件之后就传不过来了