我正在学习节点并表达为我将创建的角度应用创建一个api。
当我尝试发布某些内容时,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": {}
}
我不明白为什么这会是空白的,感谢任何帮助。
更新
原来我在邮递员而不是text
发布JSON
。
答案 0 :(得分:0)
在server.js文件中使用它
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());