У меня есть массив, который генерируется на странице, сохраняется как переменная.Как отправить его с помощью POST в db (mongodb, node, express) - PullRequest
0 голосов
/ 19 сентября 2018

Узел, экспресс, вопрос mongodb.

У меня есть веб-страница с некоторым JS-кодом.Пользователь вводит некоторые вещи в форму my, а затем он может создать таблицу с данными.Перед тем, как таблица будет напечатана пользователю, данные сохраняются в виде переменной (Array).Сам массив называется obj.invoices.

Я могу легко сохранить данные из формы в БД, используя «имя».Когда я использую его, он появляется в req.body, который я затем могу использовать в моем контроллере и сохранить в БД.

Но как мне передать сгенерированную переменную (obj.invoices) со страницы, чтобычто он будет следовать в POST и появится в req.body?

На данный момент массив не проанализирован, поэтому я не могу построить функцию в Express / Mongoose для сохранения данных в БД.

1 Ответ

0 голосов
/ 19 сентября 2018

Я решил, но я уверен, что это плохое решение.

По завершении генерации массива я запускаю эту функцию,

function showArray() {

var json_data = JSON.stringify(myArray);
document.getElementById('showArray').innerHTML = json_data;

}

Это преобразует массив в строку, а затем отправляет его во входные данные в моей форме;

                <div class="field">
                    <div class="control">
                        <textarea id="showArray" class="textarea is-info" type="text"  name="ArrayToDb"></textarea>
                    </div>
                </div>

Поэтому, когда я отправляю свою форму, массив в виде строки публикуется с req.body.Затем в моем controller.js для приложения я преобразую строку обратно в массив;

let jsonArray = JSON.parse(req.body.ArrayToDb)

, а затем сохраняю ее в БД

    newLan.fakturor = jsonArray;

    newLan.save(function (err) {
        console.log(newLan._id)
    });

Как я уже сказал, этоскорее всего, это действительно плохой способ сделать это, но пока он работает для меня.

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