我无法从nodesjs + expressjs中的req.body获取数据

时间:2016-02-11 17:46:54

标签: javascript node.js express

这是我的代码:

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

我无法从响应中获取任何数据。我有查找文档,但我找不到任何错误。我还是不明白。我犯了什么错误?

2 个答案:

答案 0 :(得分:1)

我知道会发生什么!

如果我想在x-www-form-urlencoded中发送数据,这里有一个很好的解决方案可以帮助我:

Result is undefined when I use form-data in Postman

如果我使用content-type:application/json发送数据,它实际上是有效的!

我发现当邮递员在标题中发送没有{{1}}的json数据时,这肯定是错误的。现在,我添加了它。它可以是有效的。

谢谢大家!

答案 1 :(得分:1)

您应该使用邮局中的content-type:application/json在标题中发送您的数据。这将确保服务器以JSON格式接收数据。