В приложении expressjs, как обрабатывать массив с запросом POST в конечной точке API? - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь создать конечную точку expressjs API. Для моего приложения объект придет на другой сервер, и это несколько объектов. Мне нужно преобразовать его в массив, и после этого мне нужно pu sh его в моей базе данных или других.

Также я использую express 4+, поэтому я не использовал body- синтаксический анализатор, потому что он включен в express.

Примечание. Данные поступают с другого сервера и имеют формат «application / x- www-form-urlencoded».

Я ожидаю, что данные будут такими, как это c данные:

    [
        {
            "name": "As Md Habibullah",
            "phone": "+8615608807860",
            "email": "asmdhabibullah@yahoo.com",
            "car_brand": "Mercedes-Benz",
            "car_number": "256858"
        },
        {
            "name": "Filippo Masiero",
            "phone": "+393470927738",
            "email": "asmdhabibullah@yahoo.com",
            "car_brand": "Mercedes-Benz",
            "car_number": "25586458"
        },
        {
            "name": "Azad Ahmed",
            "phone": "+393470927738",
            "email": "asmdhabibullah@yahoo.com",
            "car_brand": "Mercedes-Benz",
            "car_number": "2566868"
        },
        {
            "name": "Md Musa",
            "phone": "+393470927738",
            "email": "asmdhabibullah@yahoo.com",
            "car_brand": "Mercedes-Benz",
            "car_number": "256858"
        }
    ]

Я предполагаю, что данные будут приходить на мою конечную точку, это несколько объектов, и мне нужно создать массив, например, несколько объектов: {}, {}, {}

Я хочу сделать массив вроде: [{}, {}, {}, {}]

Возможно ли?

1 Ответ

0 голосов
/ 16 июня 2020

Если данные поступают как JSON, но облачены в application/x-www-form-urlencoded, тип содержимого, тогда вам придется использовать промежуточное ПО express для этого типа содержимого. Это даст вам декодированный JSON как простой текст, который затем вам придется вручную проанализировать в объект Javascript, например:

// middleware for parsing application/x-www-form-urlencoded content-type 
app.use(express.urlencoded({extended: true}));

app.post("/somerouter", (res, res) => {
    try {
        // parse decoded body text from JSON into Javascript object
        let obj = JSON.parse(req.body);
        console.log(obj);
        // process obj here
        res.send("ok");
    } catch(e) {
       console.log("bad JSON", e);
       res.sendStatus(400);
    }
});

В идеале запрос будет отправлен как application/json, а затем вы можете использовать промежуточное ПО express.json(), и JSON будет автоматически анализироваться в вашем объекте.


Но, если ваши данные application/x-www-form-urlencoded - это просто данные формы, то они уже проанализированы для вас и уже находится в req.body в качестве свойств этого объекта. Вы просто получаете к нему доступ прямо в req.body:

// middleware for parsing application/x-www-form-urlencoded content-type 
app.use(express.urlencoded({extended: true}));

app.post("/somerouter", (res, res) => {
    console.log(req.body);
    // process data in req.body and then send some response
    res.send("ok");
});
...