node用express写后端restful接口实战七:模糊查询
模糊搜索
这一节要来实现的是模糊搜索功能。依照手册的教程,实现复杂的查询,这里需要先引入一个叫做 Op
的东东。
var Op = models.Sequelize.Op
引入了以后,定义一个叫做 where
的空对象,里面保存需要查询的条件。我们这里想对标题做查询,所以先要来接收一下 title
。
如果用户传了 title
参数,那么我们就给 where
里添加一个 like
。like
就是 像
的意思,它是 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
关键词。所以这里,就有两条记录了。这就是模糊搜索
功能一种最简单的实现方式了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现