在koa中使用sequelize进行数据库操作

Sequelize

介绍:

​ Sequelize是一个基于promise的node.js的ORM(Object Relatial Module)框架,通过该框架我们可以在进行后端API开发时,不再通过原始的手动写入数据库操作语句,而是可以通过对象操作的方式进行数据库相关操作.目前Sequelize支持的数据库有Postgres、Mysql、MariaDB、SQLite、Microsoft SQL Server.它具有强大的事务支持,关联关系,预读和延迟加载,读取复制等功能.

注意:

** 在我们使用sequelize进行开发时,调用的API大多都是promise类型的,因此需要通过promise的方式进行相应的数据获取.(我们可以使用async以及await进行数据获取.也可以通过promise的then方法、catch方法、all方法、finally方法等进行数据处理) **

安装

我们想要使用sequelize就必须先进行安装(这里以mysql数据库为例,其他数据库驱动请另外查看sequelize官网)

npm install --save sequlize  // 在项目中安装sequelize
npm install --save mysql2 // 为指定数据库安装相应的驱动

以用户登录API为例子:

步骤一: 在项目中的src文件夹(这里我以src文件夹作为项目主文件夹,项目实现都在该文件夹下进行)下新建config文件夹,
在该config文件夹中分别新建dbinfo.js文件与connect.js文件

dbinfo.js文件中

// 在dbinfo.js文件中,配置数据库相关信息
const config = {
   
  database: "http_api", // 数据库名称
  username: "root", // 用户名
  password: "961124", // 密码
  host: "localhost", // 主机地址
  port: "3306", // 端口号
  dialect: "mysql", //数据库类型,支持: 'mysql', 'sqlite', 'postgres', 'mssql'
  logging: true, // 是否启用日志
};
module.exports = config; // 将配置导出

connect.js文件中

// 在connect.js文件中,使用sequelize连接数据库
const config=require('./dbinfo') // 引入数据库配置信息
const Sequelize = require("sequelize"); // 引入sequelize依赖

const sequelize = new Sequelize(
  config.database,
  config.username,
  config.password,
  {
   
    dialect: config.dialect,
    host: config.host,
    port: config.port,
    logging: config.logging,
    pool: {
    // 连接池配置
      min: 0, // 最小连接数
      max: 5, // 最大链接数
      idle: 30000,
      acquire: 60000,
    }
  }
);
// 导出
module.exports = {
   
  sequelize,
  Sequelize,
};
步骤二: 在src文件夹下新建models文件夹(该文件夹用于放置相应的数据库表生成功能文件)

在models文件夹中新建account.js文件,用于配置用户信息表

const {
    sequelize, Sequelize } = require("../config/connect"); // 引入相关依赖以及数据库

const Account = sequelize.define(
  "account", // 数据库中生成的表名(最终会自动在末尾添加s,因此最终数据库中生自动成表名为accounts
  {
    // 表字段信息配置
    id: {
   
      type: Sequelize.STRING, // 字段类型
      allowNull: false, // 是否允许为空
      primaryKey: true, // 是否主键
    },
    username: {
   
      type: Sequelize.STRING, // 字段类型
      allowNull: false, // 是否允许为空
    },
    password: {
   
      type: Sequelize.STRING, // 字段类型
      allowNull: false, // 是否允许为空
    },
  },
  {
   
    timestamps: false, // 是否自动在数据表中添加数据操作时间
  }
);

Account.sync({
    force: false }); // 是否自动创建表

module.exports = {
   
  Account,
};

步骤三: 在src文件夹下新建services文件夹(该文件夹用于放置操作相关数据库表的功能实现文件)

在services文件夹中新建account.js文件,用于配置操作用户信息表的方法

const {
    Account } = require("../models/account");
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值