req.body在服务器端未定义

我正在使用节点,表示,在服务器端的MySQL的应用程序。 我已经在server.js文件上写了serveral API,当我试图访问那些使用Postman然后req.body总是未定义的。

这是我的server.jsconfiguration。

var express = require('express'); var mysql = require('mysql'); var cors = require('cors'); var bodyParser = require('body-parser'); var wrench = require("wrench"); var fs = require('fs'); var path = require("path"); var mkdirp = require('mkdirp'); var walk = require('walk'); var fse = require('fs-extra'); var multipart = require('connect-multiparty'); var multipartMiddleware = multipart(); var crypto = require('crypto'); app.use(cors()); app.use(bodyParser.urlencoded({limit: '50mb',extended: false})); app.use(bodyParser.json({limit: '50mb'})); var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'pass', database: 'dbname' }); connection.connect(function(err) { if (!err) { console.log("Database is connected ... \n\n"); } else { console.log("Error connecting database ... \n\n"); } }); app.post('/urlreq', function(req, res){ console.log(req.body); } app.listen(3000, function(){ console.log("Rest Demo Listening on port 3000"); }); 

当我试图在邮递员体内发送的东西然后req.body在服务器端来空。

如果您发送multipart/form-data ,它不起作用,因为bodyparser不处理这种身体types。

在这种情况下添加下面的行应该修复它:

 app.use(multipartMiddleware); 

形成文档 :

multipart/form-data是Web表单用来传输数据的默认编码

尝试添加:

 var express = require('express'); var app = express(); [...] // Last stack app.listen(3000, function(){ console.log("Rest Demo Listening on port 3000"); }); 

你也可以用作中间件。 也听一个端口。 在代码中添加以下行 –

 var app = express(); app.use(function(req, res, next) { console.log('Current User:', req.body); next(); }); app.post('/url', function(req,res){ console.log(req.body) }); app.listen(3000, function(){ console.log('Express server listening on port 3000'); });