SequelizeDatabaseError - 缺少列 - 一对多关联

时间:2018-06-11 17:11:34

标签: node.js postgresql sequelize.js

我正在遵循以下教程here

一切都可以达到Listing todo-items inside todos

向服务器发出get请求时,我有以下错误报告:

{"name":"SequelizeDatabaseError","parent":{"name":"error","length":104,"severity":"ERROR","code":"42703","position":"440","file":"parse_relation.c","line":"2743","routine":"errorMissingColumn","sql":"SELECT \"ItemSet\".\"id\", \"ItemSet\".\"title\", \"ItemSet\".\"createdAt\", \"ItemSet\".\"updatedAt\", \"items\".\"id\" AS \"items.id\", \"items\".\"content\" AS \"items.content\", \"items\".\"complete\" AS \"items.complete\", \"items\".\"createdAt\" AS \"items.createdAt\", \"items\".\"updatedAt\" AS \"items.updatedAt\", \"items\".\"itemSetId\" AS \"items.itemSetId\", \"items\".\"itemId\" AS \"items.itemId\" FROM \"ItemSets\" AS \"ItemSet\" LEFT OUTER JOIN \"Items\" AS \"items\" ON \"ItemSet\".\"id\" = \"items\".\"itemId\";"},"original":{"name":"error","length":104,"severity":"ERROR","code":"42703","position":"440","file":"parse_relation.c","line":"2743","routine":"errorMissingColumn","sql":"SELECT \"ItemSet\".\"id\", \"ItemSet\".\"title\", \"ItemSet\".\"createdAt\", \"ItemSet\".\"updatedAt\", \"items\".\"id\" AS \"items.id\", \"items\".\"content\" AS \"items.content\", \"items\".\"complete\" AS \"items.complete\", \"items\".\"createdAt\" AS \"items.createdAt\", \"items\".\"updatedAt\" AS \"items.updatedAt\", \"items\".\"itemSetId\" AS \"items.itemSetId\", \"items\".\"itemId\" AS \"items.itemId\" FROM \"ItemSets\" AS \"ItemSet\" LEFT OUTER JOIN \"Items\" AS \"items\" ON \"ItemSet\".\"id\" = \"items\".\"itemId\";"},"sql":"SELECT \"ItemSet\".\"id\", \"ItemSet\".\"title\", \"ItemSet\".\"createdAt\", \"ItemSet\".\"updatedAt\", \"items\".\"id\" AS \"items.id\", \"items\".\"content\" AS \"items.content\", \"items\".\"complete\" AS \"items.complete\", \"items\".\"createdAt\" AS \"items.createdAt\", \"items\".\"updatedAt\" AS \"items.updatedAt\", \"items\".\"itemSetId\" AS \"items.itemSetId\", \"items\".\"itemId\" AS \"items.itemId\" FROM \"ItemSets\" AS \"ItemSet\" LEFT OUTER JOIN \"Items\" AS \"items\" ON \"ItemSet\".\"id\" = \"items\".\"itemId\";"}

我对教程做了一些小修改:

  • 我使用的是ItemSet,而不是ToDo
  • 我使用的是Item,而不是ToDoItem

理想情况下,我想要一些返回的内容,如下所示: enter image description here

我的代码可在此处找到:https://github.com/AlexanderMcNulty/seq

1 个答案:

答案 0 :(得分:1)

我认为问题是ItemSet模型中定义的itemId

ItemSet.associate = function(models) {
    ItemSet.hasMany(models.Item, {
      foreignKey: 'itemId',
      as: 'items',
    });
  };

我认为你没有定义itemId任何地方