2015-09-17 16 views
6

私はノード、Express、mysqlサーバ側でを使用するアプリケーションに取り組んでいます。私はserver.jsファイルにサーバAPIを書いています。私は郵便配達員を使ってアクセスしようとしています。req.bodyは常に定義されていません。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"); 
}); 

私は郵便配達で身体の中に何かを送ろうとしているとき、req.bodyはサーバー側で空になります。

+1

はしているデータを転送するために使用されます'multipart/form-data'リクエストを送信していますか?そうであれば、 'bodyparser'はこのボディタイプを扱わないので動作しません – Curious

+1

' app.listem'のタイプミス 'app.listen'に変更しました – GuyT

+0

@ Curious私はフォームを送信するフォームデータに対してマルチパートを使用していませんオブジェクトとしてのデータ。 – ashishkumar148

答えて

3

をあなたはmultipart/form-dataを送信する場合bodyparserこのボディタイプを処理しないので、それは動作しません。次の行を追加する。この場合

それを修正する必要があります

app.use(multipartMiddleware); 

フォームdocs

multipart/form-dataは、Webフォームをコードするデフォルトは

+0

ありがとうございます!それは問題を解決しました。 – ashishkumar148

0

ミドルウェアとしても使用できます。また、ポートで聴く。あなたのコードに次の行を追加します -

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

ええ、でも同じprobです。やってくる。 – ashishkumar148

0

追加してみてください。

var express = require('express'); 
var app = express(); 
[...] 

// Last stack 
app.listen(3000, function(){ 
    console.log("Rest Demo Listening on port 3000"); 
}); 
+0

は同じprobです。 – ashishkumar148

関連する問題