Express.js访问序列化表单数据的字段

时间:2016-06-29 12:13:12

标签: javascript node.js express

我正在努力在我的快递路由器中访问序列化formdata的特定字段。

这是我的ajax请求:

var formData = $("#add-fut-account-form").find("select, textarea, input").serialize();
$.ajax({
  url: "/accounts/insert",
  type: "POST",
  data: {formData},
  success: function (response) {
    $("#addFutAccountResponse").append(response);
  },
  error: function (xhr) {
    alert("Error while trying to insert a new account!");
  }
})

这是我的路由器:

router.post('/insert', function(req, res)
{
    var formData = req.body.formData;
    console.log(formData);
});

我的console.log()输出:

  

电子邮件= kentor%40gmail.com&安培;密码= dsadsa&安培;秘密= 123&安培;平台= P&安培;帐户型= X&安培;代理=安培; RPM = 8&安培;阈值= 3.5&安培;可选注释=安培;是 - 上活性=

我的问题:

我应该如何序列化/发送/接收我的formData,以便我可以从表单轻松访问特定字段(如电子邮件,密码)。我尝试使用不起作用的req.body.formData.email(结果:未定义)。我知道如何解决这个问题的两种可能方法,但它们似乎是一种迂回的方式。因此,我想知道使用express处理formdata的最佳做法是什么。

修改:我已在app.js中使用bodyParse:

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

1 个答案:

答案 0 :(得分:1)

尝试按如下方式制作ajax:

var formData = $("#add-fut-account-form").find("select, textarea, input").serialize();

$.ajax({
  url: "/accounts/insert",
  type: "POST",
  data: formData,
  success: function (response) {
    $("#addFutAccountResponse").append(response);
  },
  error: function (xhr) {
    alert("Error while trying to insert a new account!");
  }
})

删除数据上的花括号