老师,文章搜索功能似乎是有Bug?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
Brian 2020-04-02 00:16:49

参考逻辑:

handleSearch (value) {

     // 判断是否有新的查询内容的传递,把分页数据归0

this.option = {}

this.page = 1

if (value.item === 'tags') {

       value.item = 'tag'

}

this.option[value.item] = value.search

this._getList()

},

API:

if (body.title) {

     options.title = { $regex: body.title }

}

if (body.catalog && body.catalog.length > 0) {

     options.catalog = { $in: body.catalog }

}

if (body.isTop) {

     options.isTop = body.isTop

}

if (body.isEnd) {

     options.isEnd = body.isEnd

}

if (body.status) {

     options.status = body.status

}

if (typeof body.tag !== 'undefined' && body.tag !== '') {

     options.tags = { $elemMatch: { name: body.tag } }

}

const result = await Post.getList(options, sort, page, limit)

const total = await Post.countList(options)


参考提交:

https://git.imooc.com/class-70/toimc-api

https://git.imooc.com/class-70/toimc-admin


  • 提问者 爱吃鸡腿子 #1
    我昨天也想到是这么写,但是咱们前端那边有至少五、六个查询条件,后端这里的逻辑要写很多个if么
    2020-04-02 08:47:59
  • Brian 回复 提问者 爱吃鸡腿子 #2
    对,因为不同的查询,可能对应的不同的搜索逻辑啊。有的是模糊查询,有的是范围查询,有的是精确查询,有的是嵌套查询,这些没办法统一的。除非,在前台规定一套机制,在后台根据机制来判断查询逻辑,把查询逻辑进行再次封装,可以参考TypeORM,我可能考虑后续的课程中会讲一点点,看大家的接受程度
    2020-04-02 15:40:56
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师