要求的事情.服务器端未定义正文



我正在使用节点,express, mysql在服务器端的应用程序工作。我在服务器.js文件上写了几个api,当我试图访问那些使用邮差然后req。body总是未定义的

这是我的server.js配置。

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 ... nn");
    } else {
        console.log("Error connecting database ... nn");
    }
});
app.post('/urlreq', function(req, res){
    console.log(req.body);
}
app.listen(3000, function(){
    console.log("Rest Demo Listening on port 3000");
});

当我试图在邮差发送身体的东西,然后请求。正文在服务器端为空

如果你发送的是multipart/form-data,它不工作,因为bodyparser不处理这种身体类型。

在这种情况下,添加以下行应该可以修复它:

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');
});

最新更新