egg中mysql如何模糊查询

在egg中,可以使用mysql的LIKE关键字进行模糊查询,SELECT * FROM table WHERE column LIKE '%keyword%'

在Egg.js中,我们可以使用Sequelize库来操作MySQL数据库,以下是如何在Egg.js中使用Sequelize进行模糊查询的详细步骤:

创新互联建站-专业网站定制、快速模板网站建设、高性价比华容网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式华容网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖华容地区。费用合理售后完善,10余年实体公司更值得信赖。

1、安装Sequelize和mysql2模块

我们需要安装Sequelize和mysql2模块,在项目根目录下运行以下命令:

npm install sequelize mysql2 save

2、配置数据库连接

config/config.default.js文件中,配置数据库连接信息:

exports.sequelize = {
  client: 'mysql',
  connection: {
    host: '127.0.0.1',
    port: '3306',
    user: 'root',
    password: 'your_password',
    database: 'your_database'
  },
  pool: {
    max: 5,
    min: 0,
    acquire: 30000,
    idle: 10000
  }
};

3、创建模型

在项目中创建一个名为app/model的文件夹,然后在该文件夹中创建一个名为user.js的文件,用于定义用户模型:

// app/model/user.js
const Sequelize = require('sequelize');
const sequelize = require('../config/config').sequelize;
const User = sequelize.define('user', {
  id: {
    type: Sequelize.INTEGER,
    primaryKey: true,
    autoIncrement: true
  },
  name: Sequelize.STRING,
  email: Sequelize.STRING,
  age: Sequelize.INTEGER
}, {
  tableName: 'users'
});
module.exports = User;

4、进行模糊查询

在需要执行模糊查询的地方,引入User模型并执行查询,在app/controller/user.js文件中,我们可以编写一个根据用户名模糊查询用户的控制器:

// app/controller/user.js
const Controller = require('egg').Controller;
const User = require('../model/user');
class UserController extends Controller {
  async search() {
    const { ctx } = this;
    const keyword = ctx.query.keyword || ''; // 获取查询参数中的关键字,如果没有则默认为空字符串
    const users = await User.findAll({ // 使用Sequelize的findAll方法进行模糊查询,其中包含一个where对象,用于指定查询条件
      where: {
        name: { [Sequelize.Op.like]: %${keyword}% } // 使用Sequelize的Op对象的like方法进行模糊匹配,将关键字用百分号包围,表示任意字符出现任意次数
      }
    });
    ctx.body = users; // 返回查询结果
  }
}
module.exports = UserController;

5、测试模糊查询功能

启动项目后,访问http://localhost:7001/api/user/search?keyword=张,将会返回所有名字中包含“张”的用户信息。

文章名称:egg中mysql如何模糊查询
网页URL:http://www.shufengxianlan.com/qtweb/news22/396872.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联