📅  最后修改于: 2023-12-03 14:38:47.054000             🧑  作者: Mango
.toJSON()
方法Sequelize是一个基于Promise的Node.js ORM(对象关系映射)工具,支持PostgreSQL,MySQL,SQLite和Microsoft SQL Server。它可以帮助我们更方便地处理数据库,同时可以使用JavaScript来定义模型并将其映射到数据库表。
.toJSON()
是Sequelize中的一个方法,使得我们可以将Sequelize模型实例序列化为JSON对象。
.toJSON()
返回某个Sequelize模型实例对象的JSON表现形式,该JSON对象包括所有当前属性的值以及任何格式化和处理。
const user = await UserModel.findOne({
where: { id: 1 },
});
console.log(user.toJSON());
该方法可以轻松地将Sequelize模型实例对象转换为JSON对象或字符串,方便我们在程序中的实际使用中进行数据操作。
例如,在以下示例中,我们将创建一个User
模型,其中包含一些属性:id
,name
,age
和email
。
const { DataTypes, Model } = require('sequelize');
const sequelize = new Sequelize('sqlite::memory:');
class User extends Model {}
User.init({
id: {
type: DataTypes.STRING,
primaryKey: true,
},
name: DataTypes.STRING,
age: DataTypes.INTEGER,
email: DataTypes.STRING,
}, { sequelize, modelName: 'user' });
(async () => {
await User.sync({ force: true });
const user = await User.create({
id: '1',
name: 'John Doe',
age: 30,
email: 'johndoe@example.com',
});
console.log(user.toJSON());
})();
输出结果为:
{
id: '1',
name: 'John Doe',
age: 30,
email: 'johndoe@example.com',
createdAt: '2021-09-23T10:56:48.158Z',
updatedAt: '2021-09-23T10:56:48.158Z'
}
toJSON()
方法返回的JSON对象是不可变的,即使在原始模型实例中已经更改了某些属性值,也不会反映在JSON对象中。toJSON()
选项来排除它们:class SomeModel extends Model {
static init(sequelize, DataTypes) {
return super.init({
// ...
}, {
// ...
toJSON: {
exclude: ['password', 'refresh_token'],
}
});
}
}
toJSON()
方法是Sequelize中的一个非常实用的方法之一,可以为我们的工作带来很大的便利。在实际应用中,我们可以结合前端框架(如React、Vue.js等)来实现更高效的数据操作和管理。