NodeJS не может обработать массив объектов, полученных через POST - PullRequest
1 голос
/ 04 апреля 2020

У меня есть эта коллекция объектов, которые находятся внутри текстовой области html:

{"name":"John", "lname":"Doe","company":"example company","email":"johndoe@example.com"},{"name":"Katie","lname":"Jake","company":"example company","email":"katie@example.com"},
...
...
...

Есть ли способ отправить всю коллекцию в node js и выполнить итерацию по ней, чтобы получить значения объектов?

Мой AJAX код:

  $.ajax({
    type: "POST",
    url: "https://example.com/nodeapp",
    data: '['+document.getElementById("list").value+']',
    success: function(data) {
      console.log(data);
    }
  });

Я пытался создать foreach для req.body, но, похоже, он не работает:

var arr = req.body;

arr.foreach(element=>{
console.log(element.email);
})

выдает ошибку:

TypeError: arr.foreach is not a function

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Я нашел свою проблему! В случае, если кто-то застрял в одной и той же вещи, все это была строка:

'[{"name":"John", "lname":"Doe","company":"example company","email":"johndoe@example.com"},
{"name":"Katie","lname":"Jake","company":"example company","email":"katie@example.com"},
...
...]'

, которая рассматривалась как одно свойство в JSON, которое не имеет значения, пока его получает сервер. Примерно так:

{
"<<the array in string format>>" : ""
}

Как я это исправил, я раздвинул объекты отдельно в новый массив и отправил его на сервер с типом содержимого JSON. (Который был фактическим массивом объектов)

0 голосов
/ 04 апреля 2020

Сначала вы должны проанализировать тело с помощью функции JSON .parse (). Например:

var arr = JSON.parse(req.body);

arr.forEach(element=>{
console.log(element.email);
});

foreach javascript также определен как arr.forEach (...), а не arr.foreach (...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...