get 列表数据的时候,data 一直返回 0

来源:11-18 视频列表页对接后台数据

sai1024

2017-11-11

请求成功了,但是返回回来的数据 data 一直是 0,检查了之前是有上传成功的视频啊。请老师和各位同学帮忙看看,或者提供一些思路,谢谢了。

// controller

exports.find = function *(next) {
    var page = parseInt(this.query.page, 10) || 1
    var count = 5
    var offset = (page - 1) * count
    var queryArray = [
      Creation
        .find({finish: 100})
        .sort({
            'meta.createAt': -1
        })
        .skip(offset)
        .limit(count)
        .populate('author', userFields.join(' '))
        .exec(),
      Creation.count({finish: 100}).exec()
    ]

    var data = yield queryArray

    console.log(data)

    this.body = {
        success: true,
        data: data[0],
        total: data[1]
    }
}
// model

var CreationSchema = new Schema({
  author: {
    type: ObjectId,
    ref: 'User'
  },

  video: {
    type: ObjectId,
    ref: 'Video'
  },

  audio: {
    type: ObjectId,
    ref: 'Audio'
  },

  qiniu_thumb: String,
  qiniu_video: String,

  cloudinary_thumb: String,
  cloudinary_video: String,

  finsh: {
      type: Number,
      default: 0
  },

  meta: {
    createAt: {
      type: Date,
      dafault: Date.now()
    },
    updateAt: {
      type: Date,
      dafault: Date.now()
    }
  }
})

CreationSchema.pre('save', function(next) {
  if (this.isNew) {
    this.meta.createAt = this.meta.updateAt = Date.now()
  }
  else {
    this.meta.updateAt = Date.now()
  }

  next()
})


写回答

4回答

Scott

2017-11-18

首先,你的 finsh 在数据里,存的时候,拼错了,应该是 finish


其次,你数据库里的 finish 都是 0,你从外面查询的时候 {finish: 100} 肯定是查不到数据了

1
0

sai1024

提问者

2017-11-15

> db.creations.find({}).pretty()
{
	"_id" : ObjectId("5a06aeaee02006704a95fa4f"),
	"author" : ObjectId("5a06ad69e02006704a95fa4b"),
	"audio" : ObjectId("5a06aea2e02006704a95fa4e"),
	"video" : ObjectId("5a06ae6fe02006704a95fa4d"),
	"qiniu_thumb" : "video_uwdxcbht7y25mpazsm1y.jpg",
	"qiniu_video" : "video_uwdxcbht7y25mpazsm1y.mp4",
	"meta" : {
		"createAt" : ISODate("2017-11-11T08:02:54.516Z"),
		"updateAt" : ISODate("2017-11-11T08:02:54.516Z")
	},
	"finsh" : 0,
	"__v" : 0
}
{
	"_id" : ObjectId("5a06be9f45a880184b56f62d"),
	"author" : ObjectId("5a06ad69e02006704a95fa4b"),
	"audio" : ObjectId("5a06be8045a880184b56f62c"),
	"video" : ObjectId("5a06be6645a880184b56f62b"),
	"qiniu_thumb" : "video_vzk3twys4rpwquf1i9wt.jpg",
	"meta" : {
		"createAt" : ISODate("2017-11-11T09:10:55.460Z"),
		"updateAt" : ISODate("2017-11-11T09:10:55.460Z")
	},
	"finsh" : 0,
	"__v" : 0
}


0
0

sai1024

提问者

2017-11-14

//img.mukewang.com/szimg/5a0af8d5000186e014500214.jpg

这是调用 get 请求时的输出

0
0

Scott

2017-11-12

你的 koa 是一代 koa 还是 koa2 啊,如果是一代的话,看看这样改写行不行


var data = yield Promise.all(queryArray)

0
1
sai1024
老师,改成这样还是不行。我是按照课程的版本来的,就是 koa 一代吧。
2017-11-14
共1条回复

贯穿全栈React Native开发App

全面掌握React Native技术,不止步前端开发,让你移动领域大放光彩

946 学习 · 385 问题

查看课程