Javascript 使用Express路由器提取Post数据
我的问题是,为什么我不使用Express Router时会触发请求事件,但当我使用它时,我的request.on('data',…)和request.on('end',…)事件不会触发。我猜这与回调有关,但也可能是我犯了错误 我有一张“表格”,上面写着: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
<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;