Koa入门(二)—— Koa使用Sequelize连接数据库

本文介绍了如何在Koa项目中使用Sequelize连接MySQL数据库,包括数据库信息配置、DB层、model层、service层、controller层的设置,以及如何进行全局异常处理和多数据库配置。重点讲解了.env、config文件的修改,以及读写数据库的操作区别。
摘要由CSDN通过智能技术生成

Koa使用Sequelize连接数据库

使用的基础目录结构:Koa入门(一)—— Koa项目基础框架搭建

基础表:

CREATE TABLE `t_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `phone` varchar(20) NOT NULL COMMENT '手机号',
  `password` varchar(64) NOT NULL COMMENT '密码',
  `nick_name` varchar(50) NOT NULL DEFAULT '' COMMENT '昵称',
  `sex` tinyint(4) NOT NULL DEFAULT '1' COMMENT '性别,1:男;2:女',
  `created_at` datetime NOT NULL COMMENT '创建时间',
  `updated_at` datetime DEFAULT NULL COMMENT '最后更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

sequelize 可以根据模型自动生成数据库表字段信息,不过个人比较喜欢自己建表,不喜欢使用这个功能

数据库信息配置

// src/main/config/index.js
export default {
   
  middlewares: [
    'globalError'
  ],
  db: {
   
    username: process.env.DB_USERNAME,
    password: process.env.DB_PASSWORD,
    host: process.env.DB_HOST,
    database: process.env.DB_DATABASE,
    dialect: process.env.DB_DIALECT,
    define: {
   
      // 数据库字段下划线命名,匹配模型驼峰式命名
      underscored: true,
      // 禁用修改表名
      freezeTableName: true
    },
    timezone: '+08:00',
    // 返回的时间格式配置
    dialectOptions: {
   
      dateStrings: true,
      typeCast: true
    }
  }
};

process.env的所有配置都在 .env 文件里:

NODE_ENV=dev

PORT=4000

DB_USERNAME=koa_demo
DB_PASSWORD=koa_demo
DB_HOST=localhost
DB_DATABASE=koa-demo
DB_DIALECT=mysql

DB层

// src/main/db/index.js
import config from '@main/config';
import Sequelize from 'sequelize';
import requireDirectory from 'require-directory';

const sequelize = new Sequelize(config.db);

// 加载模型
requireDirectory(module, '../model', {
   
  visit: (obj) => {
   
    if (obj.modelName
好的,你的第一个问题是关于在基于 Koa 框架的项目中添加 Sequelize 连接 SQLite 文件数据库,库文件存放在项目目录下。 首先,你需要安装 `sequelize` 和 `sqlite3` 这两个包来连接和操作 SQLite 数据库。可以使用以下命令进行安装: ``` npm install sequelize sqlite3 ``` 接下来,你需要在项目中创建一个 `models` 目录来存放 Sequelize 的模型文件,以及一个 `config` 目录来存放数据库连接配置文件。 在 `config` 目录下创建一个 `database.js` 文件,用于配置 Sequelize 的数据库连接信息。示例代码如下: ```javascript const path = require('path'); module.exports = { development: { dialect: 'sqlite', storage: path.join(__dirname, '../database.sqlite') }, production: { dialect: 'sqlite', storage: path.join(__dirname, '../database.sqlite') } }; ``` 这里配置了两个环境:`development` 和 `production`,都使用 SQLite 数据库,并且库文件存放在项目根目录下的 `database.sqlite` 文件中。 接下来,在 `models` 目录下创建一个模型文件,比如叫做 `User.js`,用于定义一个用户的模型。示例代码如下: ```javascript const Sequelize = require('sequelize'); const sequelize = new Sequelize('sqlite::memory:'); const User = sequelize.define('user', { firstName: { type: Sequelize.STRING, allowNull: false }, lastName: { type: Sequelize.STRING, allowNull: false } }); module.exports = User; ``` 这里定义了一个名为 `User` 的模型,包含了 `firstName` 和 `lastName` 两个属性,均为字符串类型,并且不能为空。 最后,在项目的入口文件中,比如 `app.js`,初始化 Sequelize连接数据库。示例代码如下: ```javascript const Koa = require('koa'); const app = new Koa(); const Sequelize = require('sequelize'); const sequelize = new Sequelize(require('./config/database')[process.env.NODE_ENV]); sequelize .authenticate() .then(() => { console.log('Connection has been established successfully.'); }) .catch(err => { console.error('Unable to connect to the database:', err); }); module.exports = app; ``` 这里通过 `require('./config/database')[process.env.NODE_ENV]` 来获取当前环境的数据库连接配置信息,然后使用 `sequelize.authenticate()` 方法来测试数据库连接是否成功。 至此,你已经成功地在基于 Koa 框架的项目中添加了 Sequelize 连接 SQLite 文件数据库,库文件存放在项目目录下。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值