Sequelize是一个基于Promise的Node.js ORM(Object-Relational Mapping)框架,支持PostgreSQL、MySQL、MariaDB、SQLite和Microsoft SQL Server等多种数据库。
以下是使用Sequelize进行数据库操作和ORM映射的步骤:
在终端中使用以下命令安装Sequelize:
npm install --save sequelize
在Node.js中,使用Sequelize连接数据库的方式如下:
const Sequelize = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: 'mysql'
});
其中,第一个参数是数据库名,第二个参数是用户名,第三个参数是密码,第四个参数是数据库连接的相关配置。
在Sequelize中,模型是ORM映射的基础,使用模型可以方便地对数据库进行操作。以下是一个定义模型的示例:
const { Model, DataTypes } = require('sequelize');
class User extends Model {}
User.init({
// 属性
firstName: {
type: DataTypes.STRING,
allowNull: false
},
lastName: {
type: DataTypes.STRING
// allowNull 默认为 true
},
age: {
type: DataTypes.INTEGER,
allowNull: false
}
}, {
// 参数
sequelize,
modelName: 'user'
});
以上示例定义了一个名为User的模型,包含了firstName、lastName和age三个属性。其中,DataTypes是Sequelize中的数据类型,Model是Sequelize中的模型基类。
在定义好模型之后,需要同步数据库,以确保模型与数据库的结构一致。以下是同步数据库的示例:
sequelize.sync()
.then(() => {
console.log('数据库同步成功');
});
使用sync()方法可以同步所有模型到数据库中。
以下是使用Sequelize进行查询数据的示例:
const users = await User.findAll();
console.log(users);
使用findAll()方法可以查询模型对应的表中的所有数据。
以下是使用Sequelize进行增加数据的示例:
const user = await User.create({
firstName: 'John',
lastName: 'Doe',
age: 18
});
console.log(user.toJSON());
使用create()方法可以向模型对应的表中增加一条数据。
以下是使用Sequelize进行修改数据的示例:
const user = await User.findByPk(1);
user.age = 20;
await user.save();
console.log(user.toJSON());
使用findByPk()方法可以通过主键查找一条数据,使用save()方法可以保存修改后的数据。
以下是使用Sequelize进行删除数据的示例:
const user = await User.findByPk(1);
await user.destroy();
console.log('删除数据成功');
使用findByPk()方法可以通过主键查找一条数据,使用destroy()方法可以删除该条数据。