Javascript 返回sequelize中行的自定义值?

Javascript 返回sequelize中行的自定义值?,javascript,sql,sequelize.js,Javascript,Sql,Sequelize.js,我有我的模型: const User = sequelize.define( 'User', { user_id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true, }, name: { type: DataTypes.STRING(100), allowNull: false, validate: { notEmpty: true,

我有我的模型:

const User = sequelize.define(
'User',
{
  user_id: {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true,
  },
  name: {
    type: DataTypes.STRING(100),
    allowNull: false,
    validate: {
      notEmpty: true,
    },
  },
  description: {
    type: DataTypes.STRING(1000),
    allowNull: false,
  },
},
{
  tableName: 'user',
  getterMethods: {
    shortDescription: function(size)  {
      return this.description.substring(0, size);
    },
  },
}
);
我添加了
shortDescription
作为我想做的一个例子,但我不知道如何使用它。我希望所有查询都返回修改过的描述

const users = await User.findAndCountAll({
  limit,
  offset,
  attributes: {
    include: [[Sequelize.fn('LEFT', Sequelize.col('description'), myLength), 'description']],
  },
});
在这里,我用一个自定义函数实现了相同的目标,但是假设我有多个函数和子查询,我觉得重新编写include子句有点效率低下。最后,如果指定了
myLength
,我希望对描述进行修剪,否则,在修剪它的模型中设置一个默认值。

您可以使用

在您的模型代码之后,我相信您可以编写如下内容:

User.Instance.prototype.getShortDescription = function(length) {
  return this.description.substring(0, length);
}
你可以用

在您的模型代码之后,我相信您可以编写如下内容:

User.Instance.prototype.getShortDescription = function(length) {
  return this.description.substring(0, length);
}

如何在查询中使用此函数来设置描述的长度?基本上,我如何在每次从表中选择时强制调用此函数?遗憾的是,我不确定是否存在这种情况。我如何在查询中使用此函数来设置描述的长度?基本上,每次从表中选择时,我将如何强制调用此函数?遗憾的是,我不确定是否存在这样的情况。