Node.js express : confuse about router middleware

标签 node.js post router

没有路由器中间件,服务器端一旦收到post数据,就可以正常记录:

var express = require('express');
var app = express.createServer();
app.configure(function () {
    app.use(express.static(__dirname + '/static'));
    // app.use(app.router);
    app.use(express.bodyParser());
})

app.get('/', function(req, res){
    res.send('Hello World');
});

app.post('/', function(req, res){
    console.log('body:', req.body);
    res.send(req.body);
});

app.listen(8000);

但是一旦我使用router中间件,日志结果是undefined并且没有任何响应

为什么?我该如何解决这个问题?

最佳答案

问题出在你调用router的顺序

bodyParser 必须在 router 之前调用

app.configure(function () {
  app.use(express.static(__dirname + '/static'));
  app.use(express.bodyParser());
  app.use(app.router);
});

关于Node.js express : confuse about router middleware,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11685750/

相关文章:

node.js - Jade 表单返回空主体以表达 Node.js POST 请求

javascript - GYP 在 pcduino 上安装 Node 时出错

javascript - 即使我尝试重新连接,socket.io 仍保持断开连接?为什么?

router - 如何在 play Framework 2.0 中定义路由,例如 {controller}.{action}

css - 我如何在 Vue.js 中导入 css?

javascript - 按百分比从数字数组中抽取

node.js - 类型错误 : Cannot read property 'headers' of null! MEAN 堆栈

wordpress - 如何在wordpress中添加自定义分页

javascript - 如何使用 actions 在 React es6 和 axios 中发布数据

reactjs - React - 如何防止 <a href> 刷新