Express.Router、body-parser 和 post 请求 body
Express.Router, body-parser and post request body
我正在尝试使用 express.Router 来分隔我的路由,并使用 Postman 测试一些 post 请求。
在不使用路由器 body-parser 的情况下对 /test 执行 post 请求工作正常,我可以看到 body。
对使用 Router 的 /posts 执行完全相同的请求会给我 undefined body。
我在 posts 路由器之前调用 body-parser 中间件。有什么我想念的吗?
我的快递服务器文件:
const bodyParser = require('body-parser');
const express = require('express');
const app = express();
app.use(bodyParser.json());
const postsRoute = require('./routes/posts');
app.use('/posts', postsRoute);
app.post('/test',(req,res)=>{
console.log('Add post:',req.body);
});
app.listen(3000);
我的 posts 路由器文件:
const express = require('express');
const router = express.Router();
router.get('/',(req,res)=>{
res.send('Posts');
});
router.post('/',(res,req)=>{
console.log('Add post:',req.body);
});
module.exports = router;
我的 postman 请求 Content-type header 设置为 application/json:
img
我一发布问题,就发现我写的 req 和 res 的顺序错了。一个愚蠢的错误需要 1 个半小时!祝大家有个愉快的一天!
我正在尝试使用 express.Router 来分隔我的路由,并使用 Postman 测试一些 post 请求。 在不使用路由器 body-parser 的情况下对 /test 执行 post 请求工作正常,我可以看到 body。 对使用 Router 的 /posts 执行完全相同的请求会给我 undefined body。 我在 posts 路由器之前调用 body-parser 中间件。有什么我想念的吗?
我的快递服务器文件:
const bodyParser = require('body-parser');
const express = require('express');
const app = express();
app.use(bodyParser.json());
const postsRoute = require('./routes/posts');
app.use('/posts', postsRoute);
app.post('/test',(req,res)=>{
console.log('Add post:',req.body);
});
app.listen(3000);
我的 posts 路由器文件:
const express = require('express');
const router = express.Router();
router.get('/',(req,res)=>{
res.send('Posts');
});
router.post('/',(res,req)=>{
console.log('Add post:',req.body);
});
module.exports = router;
我的 postman 请求 Content-type header 设置为 application/json: img
我一发布问题,就发现我写的 req 和 res 的顺序错了。一个愚蠢的错误需要 1 个半小时!祝大家有个愉快的一天!