用户上不存在具有别名“地址”的续集关联

问题描述

我正在做一个关于 node、MysqL 和 Sequelize 的教程,一切都很顺利,但有一点我无法摆脱这个错误:“错误:与别名关联”地址“在用户上不存在”有有人去过吗? 按照我的代码https://github.com/Akssasori/sequelize2。我搜索了堆栈并尝试了几件事,但似乎我的 User.associate (connection.models);无法识别

我总是收到这个错误

UnhandledPromiseRejectionWarning: Error: Association with alias "addresses" does not exist on User

但我添加了 User.associate (connection.models);在我的模型上

解决方法

您的代码中有几个问题:

  1. 您为 User 和 Address 模型创建了单独的 Sequelize 连接,这就是它们不知道彼此关联的原因。 从两个模型模块中删除连接创建以及 checkcon 调用。

  2. 您不应在模型模块内初始化模型。 init 中有足够多的 database.js 调用,因为您需要一个 Sequelize 连接实例来初始化它们(在 database.js 中创建)。

  3. 您应该在启动服务器时在某处导入 database.js 以创建 Sequelize 连接并注册模型及其关联。 为简单起见,您只需将其导入 server.js:

const express = require('express');
const routes = require(__dirname +'/routes');
// the below line was added
require(__dirname +'/database')