参考自 Sequelize 的官方文档
未完
1. 引入
--- npm 安装
$ npm install sequelize --save
同时需要安装 数据库
# 还需要安装以下之一:
$ npm install --save pg pg-hstore // postgreSql
$ npm install --save mysql2 // mysql 或 mariadb
$ npm install --save sqlite3
$ npm install --save tedious // MSSQL
--- require 引入使用
const Sequelize = require("sequelize");
2. 连接数据库
// new 一个实例 new Sequelize({database,username,password,host,pool,})
this.sequelize = new Sequelize({
database: database, //数据库名称
username: username, //数据库用户名
password: password, //数据库密码
host: host, //数据库主机IP localhost
dialect: "mysql", //数据库类型 'mysql'|'mariadb'|'sqlite'|'postgres'|'mssql',
pool: { //连接池配置
max: 5, //最大连接数
min: 0, //最小连接数
acquire: aquireTimeout, //请求超时时间
idle: 10000 //断开连接后,连接实例在连接池保持的时间
},
logging: this.logging //输出日志信息 true or false
});
验证连接上数据库
this.sequelize
.authenticate()
.then(() => {
console.log("连接建立成功");
resolve();
})
.catch(err => {
reject();
throw new Error(`无法连接数据库:${err.message}`);
});
部分参数
Name | Attribute |
---|---|
database | 数据库名 |
username | 数据库用户名. |
password | 密码 |
dialect | 数据库方式 |
timezone | 时区 默认'+00:00' |
logging | 日志 |
pool | 连接池 min max idle |
3. 创建表
public define(modelName: String, attributes: Object, options: Object):
this.tableModels.Users = this.sequelize.define('users', {
mail: {
type: Sequelize.STRING, //数据类型 STRING,CHAR,INTEGER,FLOAT,FLOAT ,BOOLEAN,TEXT(不限长度)
primaryKey: true, // 主键 默认false
allowNull: false, // 是否可以为空 默认true
defaultValue: ' 33'
},
name: { type: Sequelize.STRING, allowNull: false },
password: { type: Sequelize.STRING(255) },
authority: { type: Sequelize.INTEGER(1).UNSIGNED,values: ["1", "8"], }
}, {
freezeTableName: true
});
把表同步到数据库
public sync(options: Object): Promise
this.tableModels.Users.sync({
force:true, // 如果表存在 则删除表后重建
logging:true // 日志
});
表关系
BelongsTo,BelongsToMany,HasMany,HasOne
4. 插入数据
public static bulkCreate(records: Array, options: Object): Promise>
this.tableModels.Users.bulkCreate([
{mail:'[email protected]',name:'张三',password:'123',authority:'1'},
{mail:'[email protected]',name:'张三',password:'123',authority:'1'}
])
5. 查询数据
findAll()
findOne()
6 更新数据
update()