技术实践

Sequelize如何设置虚拟字段

如果有一种简单的方法能直接获取 全名 那会非常好! 我们可以将 getters 的概念与 Sequelize 针对这种情况提供的特殊数据类型

羊先生的头像
羊先生2022.04.14 · 1 分钟阅读 · 131 阅读
Sequelize如何设置虚拟字段封面
文章正文还需 1 分钟

如果有一种简单的方法能直接获取 全名 那会非常好! 我们可以将 getters 的概念与 Sequelize 针对这种情况提供的特殊数据类型结合使用:DataTypes.VIRTUAL,有很多同学没有仔细去看这里,注意类型 VIRTUAL

js 复制代码
const { DataTypes } = require("sequelize");

const User = sequelize.define('user', {
  firstName: DataTypes.TEXT,
  lastName: DataTypes.TEXT,
  fullName: {
    type: DataTypes.VIRTUAL, // 注意填写这里
    get() {
      return `${this.firstName} ${this.lastName}`;
    },
    set(value) {
      throw new Error('不要尝试设置 `fullName` 的值!');
    }
  }
});
js 复制代码
const user = await User.create({ firstName: 'John', lastName: 'Doe' });
console.log(user.fullName); // 'John Doe'