问题描述
我正在做一个关于 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);在我的模型上
解决方法
您的代码中有几个问题:
-
您为 User 和 Address 模型创建了单独的 Sequelize 连接,这就是它们不知道彼此关联的原因。 从两个模型模块中删除连接创建以及
checkcon
调用。 -
您不应在模型模块内初始化模型。
init
中有足够多的database.js
调用,因为您需要一个 Sequelize 连接实例来初始化它们(在database.js
中创建)。 -
您应该在启动服务器时在某处导入
database.js
以创建 Sequelize 连接并注册模型及其关联。 为简单起见,您只需将其导入server.js
:
const express = require('express');
const routes = require(__dirname +'/routes');
// the below line was added
require(__dirname +'/database')