为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第6天 Sequlize ORM框架

标签:
Node.js

课程章节:第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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
2
获赞与收藏
4

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消