官网文档地址
安装sequelize和驱动(我这里用的是mysql)
npm install --save sequelize mysql2
建一个文件叫Sequelize.js。创建数据库连接的实例并暴露出去
import { Sequelize } from 'sequelize'// 创建实例const sequelize = new Sequelize('assets', 'root', 'admin', {host: 'localhost',pool: 3033,dialect: 'mysql'});// 测试连接try {await sequelize.authenticate();console.log('Connection has been established successfully.');} catch (error) {console.error('Unable to connect to the database:', error);}export default sequelize;
Sequelize的模型
import Sequelize from 'sequelize'import sequelize from './Sequelize.js'const { DataTypes, Model } = Sequelize;class Deportment extends Model { }Deportment.init({// 在这里定义模型属性id: {type: DataTypes.INTEGER,allowNull: true,primaryKey: true,autoIncrement: true},name: {type: DataTypes.STRING,allowNull: false},tel: {type: DataTypes.STRING,allowNull: false}}, {// 这是其他模型参数sequelize, // 我们需要传递连接实例modelName: 'Department', // 我们需要选择模型名称});// const department = Department.create({// name: '采购部', tel: '18888888888'// })// console.log(department)export default Deportment;
这里的模型我们叫做Department,区别于第27行的modelName 。由这个modelName 决定,对应数据库一个叫Departments(注意复数)的表。复制粘贴的时候要注意别改漏了。可以用大写和下划线做表名。
有趣的是,可以用Department.sync() 做自动的建表,连建表的sql语句都省了
建出来的表会有 createAt 和 updateAt 字段,可以配置关闭
建出来的表字段 和 模块定义的类型对应,String 对应 varchar(255),也可以自行定义长度
问题:
创建的createAt和updateAt是驼峰命名法?我想要下划线啊?每个字段都配置对应名称可不太好吧,再看看吧。
