课程章节:第2章 技术选型和知识点介绍(上)2-12 2-13
课程讲师:双越
课程内容:
Sequelize 介绍
Sequelize 是一个基于 Promise的 Node.js ORM 框架,用于 Postgres、Mysql、Mariadb、Sqlite 和 Microsoft SQL Server。它具有可靠的事务支持、关系、紧急和延迟加载、读取复制等功能。
使用
安装依赖包
npm install --save sequelize mysql2
Sequelize 操作数据库依赖于具体的数据库驱动,mysql2 包是 Mysql 数据库的驱动
建立连接数据库的文件:
// src/configs/db.config.js
let MYSQL_CONF = {
host: '127.0.0.1',
port: 3306,
database: 'koa_weibo',
user: 'root',
password: 'root123'
}
module.exports = {
MYSQL_CONF
}
创建 sequelize 连接数据库的实例:
// src/db/seq.js
const Sequelize = require('sequelize');
const {database, host, port, user, password} = require('../configs/db.config').MYSQL_CONF;
// 创建sequelize连接
const seq = new Sequelize(database, user, password, {
host,
port, // 默认是3306,可省略
dialect: 'mysql' // 指定要连接哪种类型的数据库,这里要操作的是mysql
});
// 测试连接
// 使用 authenticate() 测试连接是否成功
seq.authenticate().then(() => {
console.log('mysql连接成功');
}).catch(err => {
console.log(err);
})
module.exports = seq;
Sequelize 将默认保持连接持续,并对所有查询使用相同的连接。如果需要关闭连接,可以调用 sequelize.close()
(这是异步的,并返回Promise).
开发环境下,我们就使用这种默认的持久连接。在生产环境下,我们将使用连接池来做优化。
创建 User 模型
const Sequelize = require('sequelize');
const seq = require('./seq');
// 定义User Model,对应数据库中的user表
const User = seq.define('user', {
// 如果不手动创建id,sequelize会自动创建id字段,并且设为主键、自增
username: {
type: Sequelize.STRING, // 对应数据库的varchar(255),
allowNull: false // 字段非空
},
password: {
type: Sequelize.STRING,
allowNull: false
},
nickname: {
type: Sequelize.STRING,
comment: '昵称' // 给字段加注释
}
// sequelize会自动创建createdAt和updatedAt字段
});
module.exports = User;
Sequelize生成表时,默认生成的表名都是复数,而且很智能,自动加s或者变y为ies,如果非规则变形,比如tooth,也会自动将表命名为teeth。如果单词本身就是复数,就不变了。
课程收获:
这节课学习了在 Nodejs 中使用 Sequelize 来连接 Mysql 数据库,以及建立用户模型。模型 Model 就对应一张数据表,后续操作数据库,就是通过 Model 去实现的。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦