不知道是不是bug:API获取good时只返回一条
发布于 7 年前 作者 kuake 2783 次浏览 最后一次编辑是 5 年前 来自 问答

通过:https://cnodejs.org/api/v1/topics?limit=10&mdrender=true&page=1&tab=good,返回内容与https://cnodejs.org/?tab=good返回不同,前者返回只有一条记录(无论limit为几,只要tab=good): {“data”:[{“id”:“546e925cc4922d383a829753”,“author_id”:“51cfccdd73c638f3708c58d8”,“tab”:“good”,…

6 回复

【精华】和【分享,问答,招聘】的实现是不一样的。

我没去看nodeclub的代码历史。 因为用tab=good能查出一条记录,所以我猜他们也许最初是【精华】作为一个分类,和【分享,问答,招聘】是同级关系。 那一条是历史数据。 后来又将【精华】作为文章的一个属性。 从Topic的字段定义就可以看出

var TopicSchema = new Schema({
 title: { type: String },
 ...
 top: { type: Boolean, default: false }, // 置顶帖
 good: {type: Boolean, default: false}, // 精华帖
 ....
 tab: {type: String}
});

API的router实现也不一样。代码不列举了。

// 取主题
var query = {};
if (tab && tab !== 'all') {
	if (tab === 'good') {
  	query.good = true;
 } else {
 	 query.tab = tab;
  }
}

API里目前的代码逻辑应该是无法过滤出精华主题的。是否会修改? 另外,我个人觉得,能否花点时间,小改一下,将精华的url从https://cnodejs.org/?tab=good改为https://cnodejs.org/good或其他的。当然,这个无关紧要。

@alsotang

@jinceon 1L 说的真的很对。。

@kuake 我去修修这里的逻辑

@alsotang 速度很快!另外这里是不是又改回去了?: site.png

@kuake 这里我在更下层做了过滤,所以就去掉这里的了。

回到顶部