【问题标题】:Save json result of a function in javascript object将函数的json结果保存在javascript对象中
【发布时间】:2019-08-06 08:49:12
【问题描述】:

我是 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 的结果: enter image description here 提前谢谢你

【问题讨论】:

  • JSON.stringify 将 JSON 对象转换为纯文本。因此,convertedToJson.titleconvertedToJson.url 等...将不起作用。
  • 好的,谢谢您的帮助

标签: node.js function object mongoose


【解决方案1】:

首先,删除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数组中不止一项,那么考虑循环遍历数组并分别保存每一项

【讨论】:

  • 非常感谢您的反馈我尝试了您向我提出的建议,但没有创建对象。您能否查看我的问题所附的图片,该图片显示了我的 json 文件的结构
  • 更新了答案。请重试
猜你喜欢
  • 1970-01-01
  • 2021-06-21
  • 2013-06-30
  • 2021-04-24
  • 2019-09-28
  • 2018-06-21
  • 2019-05-11
  • 2019-01-07
  • 1970-01-01
相关资源
最近更新 更多