官网文档地址
安装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是驼峰命名法?我想要下划线啊?每个字段都配置对应名称可不太好吧,再看看吧。