2017-08-01 27 views
0

我正在學習節點並希望將一些數據從Ajax調用發送到節點。將數據從Ajax Post傳遞到節點j

下面是我的Ajax和節點調用。

的Ajax方法

function getUserName(){ 
    var data ={}; 
    data.email=$('#email').val(); 
    data.fNmame=$('#fNmame').val(); 
    data.lName=$('#lName').val(); 

    $.ajax({ 
     type: 'POST', 
     data: JSON.stringify(data), 
     contentType: "application/json", 
     dataType:'json', 
     url: '/getUserName',      
     success: function(data) { 
      console.log('success'); 
      console.log(JSON.stringify(data));        
     }, 
     error: function(error) { 
      console.log("some error in fetching the notifications"); 
     } 
    }); 
} 

節點功能

app.post('/getUserName',function(req,res){ 

     var reqData = JSON.stringify(req.params); 

     console.log("reqData :::: " + reqData); 

    }); 

在日誌中我可以看到

reqData :::: {} 

請建議。

+0

var reqData = JSON.parse(req.body);將爲你工作。 – Ved

回答

1

POST數據收到req.bodyreq.params用於動態參數。 對於/users/:id,您將在req.params中獲得值id。 嘗試使用req.body作爲POST正文數據。

+0

從req.params更改爲req.body並將輸出更改爲reqData :::: undefined –

+0

您是否使用'express'?我假設你是。你有'body-parser'中間件嗎?很難說只有這個代碼,並且需要Express 4+ –

+0

我正在使用express 4.15 –

0

終於找到答案我沒有使用app.use(bodyParser.urlencoded({ extended: false }));,因爲哪個帖子沒有按預期工作。

0

您需要使用body-parser中間件來提取發佈請求中的數據。你可以這樣來做:

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

app.post('/getUserName',function(req,res){ 

    var reqData = JSON.stringify(req.body.data); 

    console.log("reqData :::: " + reqData); 

}); 

要提取你需要得到的數據作爲req.body.data而不是req.params數據。這用於從您的獲取路線獲取動態變量。