node用express写后端restful接口实战七:模糊查询

模糊搜索

这一节要来实现的是模糊搜索功能。依照手册的教程,实现复杂的查询,这里需要先引入一个叫做 Op 的东东。

var Op = models.Sequelize.Op

引入了以后,定义一个叫做 where 的空对象,里面保存需要查询的条件。我们这里想对标题做查询,所以先要来接收一下 title

如果用户传了 title 参数,那么我们就给 where 里添加一个 likelike 就是 的意思,它是 SQL 语句中的语法。 然后前后各放了一个 %,前面有百分号,表示关键词,前面可以有其他文字。后面有百分号,就表示关键词后面,可以跟着其他文字。

条件写好了以后,就到 findAll 里,加上 where 参数。

router.get('/', async function (req, res, next) {
   // 搜索
    var where = {};

    // 模糊查询标题
    var title = req.query.title;
    if (title) {
        where.title = {
            [Op.like]: '%' + title + '%'
        }
    }

    var articles = await models.Article.findAll({
        order: [['id', 'DESC']],
        where: where
    });
    res.json({articles: articles});
});

查询 天气

现在来试试看,打开 Postman,用 GET 方式请求 http://localhost:3000/articles?title=天气

查询天气

因为 天气 关键词,就一条记录,所以出来的就只有这一条了。

查询 IT

再来请求 http://localhost:3000/articles?title=IT 试试

查询 IT

因为数据库中,有两条记录,都有 IT 关键词。所以这里,就有两条记录了。这就是模糊搜索功能一种最简单的实现方式了。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值