快递`req.body`是空的

时间:2015-01-28 19:34:54

标签: post express

我正在尝试使用和Express路径访问一些已发布的表单数据。发布表单后,数据应由express.Router()路由处理。但是,当我发布时,我的身体包含{}。我的代码如下:

路由器

var express = require('express');

var router = express.Router();

router.get('/', function(req, res) {
    res.render('../views/index.jade');
}); 

router.post('/', function(req, res) {
    res.send(req.body);
});

module.exports = router;

表格

form(id="task_form" action="/tasks" method="POST")
        input(type="text" id="name" placeholder="Enter Task name Here" name="task[task]" required)
        input(type="submit")
    div(class="tasks")
        - if(tasks != undefined)
            p #{tasks.task}
        - else
            p No tasks found

主app.js

var express = require('express');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var router = require('./include/router');
var database = require('./include/database');

var app = module.exports = express();
app.use(express.static(__dirname + '/public/js'));
app.use(express.static(__dirname + '/public/styles'));
app.use(express.static(__dirname + '/public/img'));
app.use(bodyParser.json());
app.use('/tasks', router);

app.get('*', function(req, res) {
    res.send('404 not found', 404);
}); 

app.listen(80);

为什么我的身体是空的?我是否需要更改bodyParser

1 个答案:

答案 0 :(得分:0)

我认为你错过了端点,因为你正在使用

action="/tasks" method="POST"

,您的终端

router.post('/', function(req, res) {
    res.send(req.body);
});

应该是

router.post('**/tasks**', function(req, res) {
    res.send(req.body);
});

你看到了差异吗?

我认为这就是问题!

玩得开心!