Как я могу получить Javascript массивов из ответа базы данных вместо объектов боли? - PullRequest
0 голосов
/ 29 марта 2020

Я некоторое время бился с этим и буду признателен за любую помощь. Я запрашиваю базу данных MongoDB, в которой есть массивы, встроенные в схему документа. Вот схема:

const segmentSchema = new Schema({
    author: String, //Email address
    content: String,                                                                                            
    order: Number
})

const storySchema = new Schema({
    title:  String,
    isPublic: Boolean,
    complete: Boolean,
    segments: [segmentSchema],
    segCount: Number,
    lastUpdate: Date,
    locked: Boolean,
    rounds: Number,
    authors: [String]
})

Когда я получаю результаты обратно, данные там, но когда я пытаюсь выполнить функции, определенные для массива c, я получаю ошибки. Вот контекст:

fetch(`/api/stories/${props.storyID}`, {
          method: 'GET',
          headers: {
            Accept: 'application/json',
              'Content-Type': 'application/json'
          },
        })
        .then(response => response.json())
        .then(theStory => {
          theStory.authors.foreach(auth => {
            console.log(auth);
          }
})
        .catch(err => {
          let errorArray = [`Sorry, there was an issue loading the story: ${err}`];
          console.log('Issue loading story: ', err);
          setErrors(errorArray);
        }

Я пробовал каждый способ получить их в массивы, чтобы я мог использовать функции, такие как foreach и .map et c, но не повезло. Я думал, что они должны просто вернуться как массивы, как массивы в схеме, и когда я добавлю их в базу данных, но не повезло.

Спасибо!

...