zoukankan      html  css  js  c++  java
  • 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 关键词。所以这里,就有两条记录了。这就是模糊搜索功能一种最简单的实现方式了。

  • 相关阅读:
    第几天?
    农历02__资料
    农历01
    VC6_预编译头
    QWebEngine_C++_交互
    Qt570_CentOS64x64_02
    Qt570_CentOS64x64_01
    QWebEngineView_CssVariables
    Windows__书
    Win7SDK
  • 原文地址:https://www.cnblogs.com/chenxi188/p/13845247.html
Copyright © 2011-2022 走看看