2017-07-18 66 views
0
var express = require('express'); // Express instance to access its 
var path = require('path'); 
var mongoose = require("mongoose"); // mongodb ODM 

var bodyParser = require('body-parser'); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 

app.set('port', process.env.PORT || 3000); // 
app.use(express.static(path.join(__dirname, 'node_modules'))); 

mongoose.connect(config.MONGO_DB_URI, function(error){ 
    if (error) { 
     console.log("Oops! Connection Failed! " + error); 
    } else { 
    console.log("Ahoy! Connection Successful with Mongo!"); 
    } 
}); 


app.use('/api', function(req, res){ 
    console.log("dasasasa"); 
    console.log(req.body); 
}); 

module.exports = app; 

當我登錄req.body時,它是一個空對象{}。 也正文分析器的版本是:nodejs body-parser無法獲取數據

npm body-parser -v 
2.15.9 

我能在這裏失去了?
另外我正在嘗試與郵遞員。

+0

你真的確認,您設置請求數據郵遞員正確嗎? – Lazyexpert

+0

嘿它工作時,我做了它x-ww.form-urlencoded,雖然沒有得到它 –

回答

0

bodyParser對象公開各種工廠來創建中間件。當內容類型請求標頭匹配類型選項時,所有中間件都會使用解析的主體填充req.body屬性,如果沒有要分析的主體,則爲空對象({}),內容類型不匹配或發生錯誤。

確保您使用一些東西一樣:

Client.js:

$.ajax({ 
    type: "POST", 
    url: '/yourRoute', 
    data: data, 
    dataType: dataType, 
    success: function(data) { 
     //do something 
    } 

}); 

和server.js

app.use('/yourRoute', function(req, res) { 
    console.log(req.body) // should be data from client 
})