node.js使用express.Router()与body-parser获取post请求参数

问题描述

使用 express() 作为路由,能够成功获取到post的请求参数,以下是部分代码展示

const app = express();
const bodyParser = require("body-parser");

//将模块注册上app实例上
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())

app.post('/test', (req, res) => {
  console.log(req.body);
  res.send(req.body)
})

也就是说以上代码段能够成功获取到数据,
但是使用express.Router()却无法得到数据,
以下是无法获取到数据的代码展示

const app = express();
const router = express.Router()
const bodyParser = require("body-parser");

app.use(router)
//将模块注册上app实例上
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())

router.post('/test', (req, res) => {
  console.log(req.body);
  res.send(req.body)
})

两个代码段的区别

一个直接使用了express(),一个使用了express.Router(),而

待解决的疑惑

使用express.Router()无法通过req.body获取到数据
如何使body-parser支持express.Router()

已解决...代码顺序问题