Я создаю приложение Node / Express с Sequelize. Я создал несколько моделей и провел некоторые миграции баз данных с sequelize-cli с минимальными трудностями и решил добавить некоторые ассоциации между моими сущностями, добавив их в файлы моделей и вызвав sequelize.sync()
. Казалось, что все go гладко, пока я не сделал запрос для проверки ассоциаций, и я получил эту ошибку: Association with alias "sender" does not exist on GlobalMessage
. Ниже приведен соответствующий код:
models / globalmessage. js:
'use strict';
module.exports = (sequelize, DataTypes) => {
const GlobalMessage = sequelize.define('GlobalMessage', {
body: DataTypes.TEXT,
timestamp: DataTypes.DATE,
SenderId: {
type: DataTypes.INTEGER,
references: {
model: "Users",
key: "id"
}
}
}, {});
GlobalMessage.associate = function(models) {
// associations can be defined here
GlobalMessage.belongsTo(models.User, {foreignKey: 'SenderId', as: 'sender'});
};
return GlobalMessage;
};
models / user. js:
'use strict';
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', {
email: DataTypes.STRING,
password: DataTypes.STRING,
username: DataTypes.STRING
}, {});
User.associate = function(models) {
// associations can be defined here
User.hasMany(models.GlobalMessage, {
as: 'globalMessages'
})
};
return User;
};
routs / api / user. js:
const Sequelize = require("sequelize");
const express = require("express");
const bcrypt = require('bcrypt');
const saltRounds = 10;
const router = express.Router();
const db = require("../../db/index");
const UserModel = require("../../models/user");
const User = UserModel(db, Sequelize);
const GlobalMessageModel = require("../../models/globalmessage")
const GlobalMessage = GlobalMessageModel(db, Sequelize);
router.post("/findOne", function (request, response, next) {
GlobalMessage.findOne({
where: {body: 'Body of message 1'}, include: 'senders'
})
.then((foundUser) => {
response.json(foundUser)
})
.catch((err) => {
console.log("Error while finding user: ", err)
})
})
module.exports = router;
Я получаю сообщение об ошибке при отправке запроса в localhost / api / user / findOne. Я искал повсюду и нашел немного документации об этой конкретной ошибке c, и любой совет, который я нашел, не оказался для меня плодотворным. Любая помощь будет оценена!