Сохранить результат json функции в объекте javascript - PullRequest
0 голосов
/ 15 марта 2019

Я новичок в nodejs и javascript, и я пытаюсь подать заявку, но у меня есть проблемы.Поэтому я работаю с nodejs express и mongodb, и у меня есть функция, которая имеет два параметра err и result.Последний (результат) представляет собой файл json, который содержит следующие элементы (заголовок, URL, описание, publishdAt, King, etage, id ....).То, что я ищу, - это создать объект и сохранить только четыре элемента (заголовок, URL, описание, publishdAt) в этом объекте.Я создал базу данных (видео), схему (videoSchema) и коллекцию (collectionVideos),

Этот мой код:

youTube.search(Query, 5, function(error, result) {

            if (error) {
                console.log(error);
            } else {
                var convertedToJson = JSON.stringify(result, null, 2)
                console.log(convertedToJson);

                a = convertedToJson.title
                b = convertedToJson.url
                c = convertedToJson.descriptionb
                d = convertedToJson.publishedAt
                post = new videosNews({
                    "title": a,
                    "url": b,
                    "description": c,
                    "publishedAt": d
                })
                console.log(post)
                post.save(function(err, data) {
                    if (err) {
                        console.log('rong')
                    } else {
                        console.log('save')
                    }
                })
            })

этот код не генерирует никаких ошибок, но объектне создан И это результат моего console.log: введите описание изображения здесь заранее спасибо

1 Ответ

0 голосов
/ 15 марта 2019

Сначала удалите функцию stringify.вам это не нужно.

Также обратите внимание, что нужные вам элементы находятся не на корневом уровне результата, а в массиве объектов items, в свойстве snippet.

В следующем примере используется только первый элемент.

youTube.search(Query, 5, function(error, result) {
  if (error) {
    console.log(error);
  } else {
    var snippet = result.items[0].snippet;
    post = new videosNews ({
      title: snippet.title,
      url: snippet.url,
      description: snippet.description,
      publishedAt: snippet.publishedAt
    })
    console.log(post)
    post.save(function(err, data) {
      if(err){console.log('rong')}
      else {console.log('save')}
    })
  }
})

Если вы знаете, что в массиве items имеется более одного элемента, рассмотрите возможность циклического перемещения по массиву и сохранения каждого элемента.отдельно

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