使用ExpressJS POST请求是空的

当我对我的服务器的路由执行POST请求时, request.body是空的。 我正在使用body parser来获取JSON数据。 我做错了什么?

_saveTicket函数上,我有console.log来显示所有的主体请求参数。 当我做一个POST请求, request.body是空的。

我需要自动parsing它?

server.js

 /** * Declaration **/ var express = require('express'), database = require('./config/database.js'), morgan = require('morgan'), port = 2559, bodyPar = require('body-parser'), methodOv = require('method-override'), mongoose = require('mongoose'), fsr = require('file-stream-rotator'), logDirectory = __dirname + '/log', favicon = require ('serve-favicon'); app = express(); /** * DB Connection **/ mongoose.connect(database.mongo); /** * Api definition **/ var accessLogStream = fsr.getStream({ date_format: 'YYYYMMDD', filename: logDirectory + '/access-%DATE%.log', frequency: 'daily', verbose: false }) app.use(express.static(__dirname + '/public')); app.use(morgan('combined', {stream: accessLogStream})); app.use(bodyPar.urlencoded({'extended':'true'})); app.use(bodyPar.json()); app.use(bodyPar.json({ type: 'application/vnd.api+json' })); app.use(methodOv('X-HTTP-Method-Override')); app.use(favicon(__dirname + '/public/images/favicon.ico')); /** * Routes section **/ require('./routes/ticket.js')(app); /** * Starting server **/ app.listen (port) console.log ("Listening on port: " + port); 

模型/ ticket.js

 var mongoose = require('mongoose'); var TicketSchema = new mongoose.Schema({ title: String, description: String }, {versionKey: false}); module.exports = mongoose.model('Ticket', TicketSchema, 'Ticket'); 

路线/ ticket.js

 var Ticket = require('../models/ticket'); module.exports = function(app){ _getAllTickets = function(req, res){ var query = Ticket.find().lean(); query.exec(function(err, lst){ if(err) res.send(err); res.json(lst); }); }; _saveTicket = function(req, res){ console.log(req.body); var tckt = new Ticket({ title: req.body.title, description: req.body.description }); tckt.save(function(err){ if(!err) console.log('Ticket creation successful. '); else console.log('ERROR: ' + err); }); res.send(tckt); }; app.get('/api/tickets/', _getAllTickets); app.post('/api/tickets/', _saveTicket); } 

确保HTTP请求将Content-Type头设置为基于body-parser中间件定义的application/jsonx-www-form-urlencoded 。 我的猜测是,它现在作为这些Content-Type