2016-03-09 87 views
0

我学习的节点,并表示为一个角应用程序,我将创建创建一个API。Express.js req.body正在返回什么

当我尝试发布东西req.body似乎是空白。

这是我server.js文件

'use strict'; 

var express = require('express'), 
    app = express(), 
    mongoose = require('mongoose'), 
    router = require('./api'), 
    bodyParser = require('body-parser'); 

mongoose.connect('mongodb://localhost/my_db'); 

app.use(bodyParser.json()); 
app.use('/api', router); 

app.get('/', function(req, res) { 
    res.render(__dirname + '/index.jade'); 
}); 

app.listen(3001, function() { 
    console.log('Listening on port 3001'); 
}); 

,这是我的API/index.js文件:

'use strict'; 

var express = require('express'), 
    Todo = require('../models/todo'), 
    router = express.Router(); 

router.get('/todos', function(req, res) { 
    Todo.find({}, function(err, todos) { 
    if(err) { 
     return console.log(err); 
    } 
    res.json({todos: todos}); 
    }); 
}); 

router.post('/todos', function(req, res) { 
    var todo = req.body; 
    res.json({todo: todo}); 
}); 


module.exports = router; 

当我使用邮递员张贴这http://localhost:3001/api/todos

{ 
    'name': 'Walk the Dog', 
    'completed': false 
} 

我的回应是:

{ 
    "todo": {} 
} 

我看不出为什么这会是空白,任何帮助表示赞赏。

UPDATE

原来我在邮差,而不是JSON发布text

+0

我没有设定的角度上去过,我第一次做的API,我用的是叫邮差的应用程序发布。原来这是我的错,我发布'文本'而不是'JSON'我会更新我的问题。 – Ollie2619

+0

你是否以邮递员的身份发送'application/json'?或者作为默认的编码形式? – charlietfl

+0

你有没有检查你是否在服务器上收到它?我的意思是console.log? – Nonemoticoner

回答

0

使用这种在server.js文件

app.use(bodyParser.urlencoded({extended:true})); 
app.use(bodyParser.json());