猫鼬模式,存储可能具有或不具有属性的对象

时间:2018-11-08 15:01:39

标签: javascript node.js mongodb mongoose

我正在查询API,以获取电视剧集的结果并将其保存到我的mongodb集合中。代码如下:

let episode = JSON.parse(response);
                        for(let j=0;j<episode.length;j++){
                          let newEpisode = {
                            title: episode[j].name,
                            number: episode[j].number,
                            season: episode[j].season,
                            date: episode[j].airdate,
                            duration: episode[j].runtime,
                            poster: episode[j].image.medium,
                            description: episode[j].summary
                          }

                          show.episodes.unshift(newEpisode);
                        }
                        show.save()

问题出在海报变量上。 API要么返回带有两个字符串的对象:

poster:
   medium: 'url-to-image'
   original: 'url-to-image'

,否则返回值为null的海报。

是否有一种方法可以将海报保存在集合中,以便既保存两个字符串(如果存在)又保存为null(如果不存在)? 它不会让我将其强制转换为数组,并且如果尝试像上面的代码一样保存其中一个属性,则会收到错误“无法读取null的属性””。

1 个答案:

答案 0 :(得分:0)

在对象模式/猫鼬模型中,将发布者定义为数组,并在帖子中突出显示的部分代码中进行相同的操作:

 poster: [
     episode[j].medium,
     episode[j].original
    ]

也许尝试从poster: episode[j].image.medium中删除“图像”?