Sequelize是一款基于Promise的ORM(Object-Relational Mapping)框架,可以帮助开发者在Node.js中方便地操作数据库。下面介绍如何使用Sequelize进行ORM操作。
在使用Sequelize之前,需要先安装Sequelize和相应的数据库驱动程序。
npm install sequelize mysql2
其中mysql2是MySQL数据库的驱动程序。Sequelize还支持其他数据库,如PostgreSQL、SQLite、MSSQL等。
在使用Sequelize操作数据库之前,需要先建立数据库连接。
const Sequelize = require('sequelize');
const sequelize = new Sequelize('database_name', 'username', 'password', {
host: 'localhost',
dialect: 'mysql'
});
其中,database_name是数据库名称,username和password是数据库用户名和密码。host是数据库的主机名,dialect是数据库类型。这里使用的是MySQL数据库。
在Sequelize中,模型(Model)对应于数据库中的表(Table)。可以使用Sequelize.define()方法定义模型。
const User = sequelize.define('user', {
firstName: {
type: Sequelize.STRING,
allowNull: false
},
lastName: {
type: Sequelize.STRING
},
age: {
type: Sequelize.INTEGER
}
});
上面的代码定义了一个名为User的模型,对应于数据库中的user表。模型有三个字段:firstName、lastName、age。其中,firstName是必填字段,其他字段可选。字段的类型可以是STRING、INTEGER、BOOLEAN等。
定义完模型之后,需要将模型同步到数据库中。
sequelize.sync()
上面的代码将所有定义的模型同步到数据库中。如果需要只同步指定的模型,可以传递一个options参数。
sequelize.sync({ force: true })
上面的代码将强制同步所有定义的模型,并在同步前删除已存在的表。
定义完模型并同步到数据库之后,就可以使用模型进行CRUD操作。
创建数据:
User.create({
firstName: 'John',
lastName: 'Doe',
age: 30
})
上面的代码创建了一条数据,插入到user表中。
查询数据:
User.findAll({
where: {
age: { [Op.gt]: 25 }
}
})
上面的代码查询年龄大于25的所有数据。
更新数据:
User.update({
firstName: 'Jane'
}, {
where: {
id: 1
}
})
上面的代码将id为1的数据的firstName字段更新为Jane。
删除数据:
User.destroy({
where: {
id: 1
}
})
上面的代码删除id为1的数据。