关于网页手动添加电影跟公众号语音添加电影问题

来源:7-3 第七天 兼容PC注册登录和首页(下)

vincents

2017-12-09

老师,现在整个项目可以跑起来了,语音可以添加电影,在数据库里面也可以看到数据。但是有一个问题,比如我们通过语音查了黑夜传说,微信端可以展示了,查看数据库里面的movies表也有电影数据,然后在categry表里面的movies数组里面也有对应的电影id明显跟movies表里面的id对应不上啊。

我们看下数据库截图:

http://img.mukewang.com/szimg/5a2b79360001cd9906930435.jpg

http://img.mukewang.com/szimg/5a2b793700014b2905210435.jpg

我们看下语音保存电影的代码:

const updateMovies = async movie => {

  var options = {

    url: 'https://api.douban.com/v2/movie/subject/' + movie.doubanId,

    json: true

  }

  var response = await request(options)

  var data = JSON.parse(response.body)

  _.extend(movie, {

    country: data.countries[0],

    language: data.language,

    summary: data.summary

  })

  var genres = movie.genres

  if (genres && genres.length > 0) {

    var cateArray = []

    genres.forEach(genre => {

      cateArray.push(async () => {

        var cat = await Category.findOne({name: genre}).exec()

        if (cat) {

          cat.movies.push(movie._id)

          await cat.save()

        }

        else {

          cat = new Category({

            name: genre,

            movies: [movie._id]

          })


          cat = await cat.save()

          movie.category = cat._id

          await movie.save()

        }

      })

    })


    Promise.all(cateArray)

  }

  else {

    movie.save()

  }

}

应该把movies里面的电影根据类型push到category的movie数组里,这边的方法有问题吗?老师帮忙看下哈

写回答

1回答

Scott

2017-12-10

怀疑是数据不一致有问题,可以这样,把本地数据库都清掉,然后再测试下,存入一条看下数据库,看从第几条开始,这里的数据同步开始出问题了,然后看下这条数据是老数据存入还是新数据新建,然后再来比对下这个代码,看是不是有问题

0
0

7天搞定Node.js微信公众号

Koa框架、ES2015新特性、MongoDB,开发微信公众号

1742 学习 · 787 问题

查看课程