2016-02-11 27 views
0

這是我的代碼:我不能從nodesjs req.body獲取數據+ expressjs

var express  =   require("express"); 
var bodyParser  =   require("body-parser"); 
var app   =   express(); 

app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json()); 

app.get('/',function(req,res){ 
    res.sendfile("index.html"); 
}); 
app.post('/login',function(req,res){ 
    console.log(req.body) 
    var user_name=req.body.user; 
    var password=req.body.password; 
    console.log("User name = "+user_name+", password is "+password); 
    res.end("yes"); 
}); 
app.listen(3000,function(){ 
    console.log("Started on PORT 3000"); 
}) 

我設置POST方法功能的控制檯,但它顯示:

{} 
User name = undefined, password is undefined 

我不能從響應中獲得任何數據。我有查找文件,但我找不到任何錯誤。我還不明白。我犯了什麼錯誤?

+0

你可以發佈你的登錄表單的代碼嗎? – Mike

+0

@Mike我用郵差測試api。我沒有用過表格。 – Tony

+0

而你正在發送正確的POST數據? – adeneo

回答

1

您應該使用郵遞員發送您的數據與標頭中的content-type:application/json。這將確保服務器以JSON格式接收數據。

0

我知道會發生什麼!

如果我想在form-data發送數據,這裏有很好的解決方案可以幫助我:

Result is undefined when I use form-data in Postman

如果我使用x-www-form-urlencoded發送數據時,它實際上是有效的!

我發現郵遞員發送json數據時沒有content-type:application/json頭文件,這肯定是錯誤的。現在,我添加了它。它可以是有效的。

謝謝大家!