Javascript 使用Express路由器提取Post数据

Javascript 使用Express路由器提取Post数据,javascript,post,request,router,Javascript,Post,Request,Router,我的问题是,为什么我不使用Express Router时会触发请求事件,但当我使用它时,我的request.on('data',…)和request.on('end',…)事件不会触发。我猜这与回调有关,但也可能是我犯了错误 我有一张“表格”,上面写着: <form method="post" action="/"> <input type="text" name="user[name]"> <input type="text" name="user[ema

我的问题是,为什么我不使用Express Router时会触发请求事件,但当我使用它时,我的request.on('data',…)和request.on('end',…)事件不会触发。我猜这与回调有关,但也可能是我犯了错误

我有一张“表格”,上面写着:

<form method="post" action="/">
  <input type="text" name="user[name]">
  <input type="text" name="user[email]">
  <input type="submit" value="Submit">
</form>
但是如果我使用路由器,那么我的app.js

var routes = require('./routes/index');
app.use('/', routes);
我的index.js

  router.post('/', (request, response) => {
  var body = '';
  console.log('in here');

  request.on('data', (chunk) => {
    body += chunk;

    if(body.length > 10e6){
        request.connection.destroy();
    }
  });

  request.on("end", () => {
    var form = qs.parse(body);
    console.log(JSON.stringify(form));
    response.redirect('/');
  });
});

module.exports = router;
然后再也不会调用“data”和“end”事件,这表明(至少对我来说)router.post是一个回调,并且这些事件已经被调用了


我的逻辑正确吗?如果是这样,那很不幸,因为我不能使用这个方法,必须使用body解析器。

正在
路由器/index.js
中导出路由器吗

即:


检查是个好主意,但我是
  router.post('/', (request, response) => {
  var body = '';
  console.log('in here');

  request.on('data', (chunk) => {
    body += chunk;

    if(body.length > 10e6){
        request.connection.destroy();
    }
  });

  request.on("end", () => {
    var form = qs.parse(body);
    console.log(JSON.stringify(form));
    response.redirect('/');
  });
});

module.exports = router;
var express = require('express');
var router = express.Router();

router.post('/', (request, response) => {
  // some stuff
});

module.exports = router;