Использование массива с Mongodb & EJS - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь найти самый простой способ использования массивов в MongoDB и EJS.

В этом очень простом примере на внешнем интерфейсе пользователь может нажать кнопку и добавить значение в массив.

$("#buttonOne").click(function() {
food.push("Kiwi");
$("#foodObject").val(food)
});

$("#buttonTwo").click(function() {
food.push("Taco");
$("#foodObject").val(food)
});

Затем на переднем крае посмотрите на вход:

<input id='foodObject' type="text" name="foodObject" placeholder="foodObject">

Идея состоит в том, чтобы передать массив в монго

var UserSchema = new mongoose.Schema({
    username: String,
    password: String,
    foodObject: [ ],
});

А затем сможете использовать массив с EJS:

<h3 class='text-center'> <%= currentUser.foodObject[0] %>  </h3> 

Так что, если бы пользователь добавил к массиву и киви, и тако, я бы хотел, чтобы foodObject [0] возвращал только киви.

Возможно ли это?

В настоящее время возвращается полная строка. т.е. "Киви, Тако"

1 Ответ

0 голосов
/ 22 января 2019

Ваша проблема в том, что вы отправляете foodObject на сервер в виде строки, а не в виде массива.Таким образом, массив, который вы возвращаете с помощью ejs, имеет только один элемент.На сервере вы должны разделить строку на массив и затем сохранить ее следующим образом.
Код на стороне сервера:

String formValue = req.body.foodObject;
var foodObjects = formValue.split(',');

Затем вы сохраняете массив foodObjects в схему mongoose.

...