无法访问sequelize中新添加的列

时间:2014-04-04 12:51:49

标签: node.js sequelize.js

我添加了迁移以添加新列,如下所示:

module.exports = {
  up: function(migration, DataTypes, done) {
    migration.addColumn('Topics','isFeatured',{
      type: DataTypes.BOOLEAN, defaultValue: false
    })
    done()
  },
  down: function(migration, DataTypes, done) {
    migration.removeColumn('Topics', 'isFeatured')
    done()
  }
}

然后以

运行迁移
sequelize -m

使用默认值添加新列。 但是当我检索这个api时

updateTopic = function (req, res) {
  db.Topic.find(req.params.id).success(function (topic) {
    console.log(topic.isFeatured)
    // some code
  });
};

然后我得到console.log(topic.isFeatured)未定义

但是console.log(topic)显示的主题的默认值为isFeatured。

所以任何人都可以帮我找出console.log(topic.isFeatured)未定义的原因。

由于

1 个答案:

答案 0 :(得分:2)

您的模型定义中似乎没有添加isFeatured列,您必须将其添加到模型定义中。

module.exports = function (db, DataTypes) {
  var Topic = sequelize.define('Topic', {
    name: DataTypes.STRING,
    // other columns
    isFeatured: DataTypes.BOOLEAN
  });
  return Topic;
}