bodyParser(urlencodedParser)数据未定义

时间:2016-10-15 23:02:44

标签: javascript node.js

我正在尝试应用一个非常基本的POST请求,该请求成功但服务器端的数据为undefined

function SubmitFunction()
{
  var text = '{"name":'+'"'+document.getElementById("text1").value+'"'+'}';
  var encoded = encodeURIComponent(text);
  var http = new XMLHttpRequest();
  http.open("POST", "/users");
  http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  http.onreadystatechange = function() {
    if(http.readyState == 4 && http.status == 200) {
      alert(http.responseText);
    }
  }
  http.send(encoded);
}

文字格式为:{"name":"Username"}

var bodyParser = require('body-parser')
var urlencodedParser = bodyParser.urlencoded({ extended: false })

app.post('/users', urlencodedParser, function (req, res) {
  if (!req.body) return res.sendStatus(400)
  res.send('welcome, ' + req.body.name)
})

1 个答案:

答案 0 :(得分:0)

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

var jsonParser = bodyParser.json();


app.post('/users', jsonParser, function(req, res){
    res.send('welcome, ' + req.body.name);
});

请尝试上面的代码。我能够运行上面的代码并获得必要的响应。我使用Postman客户端测试上面的服务器端代码。