Javascript Express-如何获取序列化表单

Javascript Express-如何获取序列化表单,javascript,jquery,node.js,express,Javascript,Jquery,Node.js,Express,我正试图提交一份带有序列化的表单,但在express中无法获取数据 jquery: function submitSettingsCustom() { $('#reception-source-custom-form, expedition-source-custom-form').on("submit", function(event) { alert("works"); event.preventDefault();

我正试图提交一份带有
序列化的表单,但在express中无法获取数据

jquery:

    function submitSettingsCustom()
   {
     $('#reception-source-custom-form, expedition-source-custom-form').on("submit", function(event)
     {
       alert("works");
       event.preventDefault();
       var form = $(this).serialize();
       $.post("/add-reception-source-customField/"+ JSON.stringify(form), function(data){

       });
     });
   }
路线:

routes.post('/add-reception-source-customField/:form', settings.storeCustomField);
在express中,我试图
console.log
数组:

console.log(req.params.form);
返回这个:

"name=Emp1&type=submitReceptionSourceCustomFields"
但如何才能访问每个值


谢谢

您应该将表单数据作为正文添加到post请求中,而不是url中

另外,
serialize
将生成URL编码的数据,而
serializeArray
将生成对象数组

   function submitSettingsCustom()
   {
     $('#reception-source-custom-form, expedition-source-custom-form').on("submit", function(event)
     {
       alert("works");
       event.preventDefault();
       var form = $(this).serializeArray();
       $.post("/add-reception-source-customField/" , { formData : JSON.stringify(form)}, function(data){

       });
     });
   }
然后在express中使用
req.body.formData

routes.post('/add-reception-source-customField/', function(req , res){
   console.log(req.body.formData);
});

对于HTTP POST请求,表单数据应该在请求体中提交,而不是在URL中提交

对于jQuery,这可以通过将序列化的表单数据作为第二个参数传递给

在express中,您将需要由Expressjs团队维护的。该中间件将使表单数据在
req.body
上可用

const express = require('express')
const bodyParser = require('body-parser')

const app = express()
app.use(bodyParser.urlencoded({ extended: true })

app.post('/reception-source', function (req, res) {
    console.log(req.body)
    /* lines of code */
})

Ok@AmrLabib但它返回我这个“name=Emp1&type=submitReceptionSourceCustomFields”。。如果使用我在答案中添加的路由,会打印什么?“name=Emp1&type=submitReceptionSourceCustomFields”现在如果我使用serializeArray()返回我这个:[{“name”:“name”,“value”:“Emp1”},{“name”:“type”,“value”:“submitReceptionSourceCustomFields”})。有了这个,我现在可以工作了!谢谢,这是服务器上的URL编码字符串。我怎样才能访问它们。
const express = require('express')
const bodyParser = require('body-parser')

const app = express()
app.use(bodyParser.urlencoded({ extended: true })

app.post('/reception-source', function (req, res) {
    console.log(req.body)
    /* lines of code */
})