「TodoList」后端-数据库连接

1、🍉 sequelize-typescript

因为我们的项目使用 TS 作为开发语言,所以自然的,我们要安装 sequelize-typescript ,用这个库来使用 TS 版的 Sequelize

1-1、安装

npm i sequelize-typescript

2、🍓 融合数据库配置

这里,我们把数据库配置融合到项目配置文件中,方便进行统一管理调用。

// file: backend/src/configs/index.ts
import databaseConfig from './database.json';

// 也可以把类型声明放到单独的 .d.ts 文件中,如:/src/types/global.d.ts
interface IDatabaseConfig {
    username: string,
    password: string | null,
    database: string,
    host: string,
    dialect: "mysql" | "postgres" | "sqlite" | "mariadb" | "mssql",
    timezone: string
}

const configs = {
  	development: {
				server: {
        		host: 'localhost',
            port: 8080
        },
				database: databaseConfig.development as IDatabaseConfig
		},
	  // ...
}

export default configs[NODE_ENV];

3、🍊 连接数据库

在应用入口文件中,连接数据库

// file: backend/src/app.ts

//...
import {Sequelize} from "sequelize-typescript";

const app = async () => {
		// 连接数据库
  	app.context.db = new Sequelize({
        ...configs.database,
    		models: [__dirname + '/models/**/*']
    });
  	// ...
}

models

指定模型文件所在位置。

4、🍇 模型是什么?

其实这里说的模型(ORM)就类似我们前端经常说到的 DOM ,有了 DOM 我们在 JS 中通过对象就可以对文档进行操作了,我们对这些 DOM对象 的操作就映射到对应的 HTML元素 上了。

这里的模型也是一个一个的对象(类),它们的映射关系是:

  • 类 <=> 数据库表
  • 类的实例对象 <=> 数据库表中的其中一条数据

我们对类的操作就是操作与其关联的表,对类的某个实例对象的操作就是操作这个关联表中的某条数据。

5、🍅 ORM 的优缺点

优点

  • 不需要写那种看起来比较恶心的 SQL,开发速度快。
  • 通过统一的对象操作,底层再转化成对应的(甚至不同数据库) SQL,较少编码差异。

缺点

  • 因为底层最终会转化成 SQL,有的时候自动生成的 SQL 执行性能会受到影响
  • 一些复杂的 SQL 通过 ORM 描述会比较繁琐,有的时候还是需要用到原生查询。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值