【备战春招】第6天 Sequlize ORM框架
2023/2/13 4:24:05
本文主要是介绍【备战春招】第6天 Sequlize ORM框架,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:Node.js-Koa2框架生态实战-从零模拟新浪微博
课程章节:第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 去实现的。
这篇关于【备战春招】第6天 Sequlize ORM框架的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API
- 2025-01-102025 蛇年,J 人直播带货内容审核团队必备的办公软件有哪 6 款?
- 2025-01-10高效运营背后的支柱:文档管理优化指南
- 2025-01-10年末压力山大?试试优化你的文档管理
- 2025-01-10跨部门协作中的进度追踪重要性解析
- 2025-01-10总结 JavaScript 中的变体函数调用方式
- 2025-01-10HR团队如何通过数据驱动提升管理效率?6个策略
- 2025-01-10WBS实战指南:如何一步步构建高效项目管理框架?