6

サーバー側でノード、エクスプレス、mysqlを使用するアプリに取り組んでいます。サーバー API を server.js ファイルに記述しましたが、Postman を使用してそれらにアクセスしようとすると、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 ... \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");
});

Postman で本文に何かを送信しようとすると、サーバー側で req.body が空になります。

4

3 に答える 3

3

を送信している場合、 はこのボディ タイプを処理しないmultipart/form-dataため、機能しません。bodyparser

この場合、次の行を追加すると修正されます。

app.use(multipartMiddleware);

ドキュメントを作成します:

multipart/form-dataWeb フォームがデータ転送に使用するデフォルトのエンコーディングです。

于 2015-09-17T14:25:12.910 に答える