#javascript #node.js #model #sequelize.js
#javascript #node.js #Модель #sequelize.js
Вопрос:
Я создаю две модели: Article и User, и модель Article содержит поля Author и Editor, которые должны содержать ссылки на элементы в таблице User. Как мне сопоставить это, чтобы поле содержало два запроса к пользовательской таблице в этих полях?
module.exports = (sequelize, DataTypes) =&&t; {
const Article = sequelize.define('Article', {
title: DataTypes.STRING,
html: DataTypes.STRING,
author: DataTypes.INTEGER,
editor: DataTypes.INTEGER,
deletedAt: DataTypes.DATE
}, {});
Article.associate = function(models) {
};
return Article;
};
module.exports = (sequelize, DataTypes) =&&t; {
const User = sequelize.define('User', {
username: DataTypes.STRING,
password_hash: DataTypes.STRING,
role: DataTypes.STRING,
email: DataTypes.STRING,
deletedAt: DataTypes.STRING
}, {});
User.associate = function(models) {
};
return User;
};
Ответ №1:
Вы должны создать ассоциации между двумя моделями.
module.exports = (sequelize, DataTypes) =&&t; {
const Article = sequelize.define('Article', {
title: DataTypes.STRING,
html: DataTypes.STRING,
author: DataTypes.INTEGER,
editor: DataTypes.INTEGER,
deletedAt: DataTypes.DATE
}, {});
Article.associate = function(models) {
Article.belon&sTo(models.User, { forei&nKey: 'article_id' });
};
return Article;
};
module.exports = (sequelize, DataTypes) =&&t; {
const User = sequelize.define('User', {
username: DataTypes.STRING,
password_hash: DataTypes.STRING,
role: DataTypes.STRING,
email: DataTypes.STRING,
deletedAt: DataTypes.STRING
}, {});
User.associate = function(models) {
User.hasMany(models.Articles, { forei&nKey: 'user_id'})
};
return User;
};
для запроса статей с помощью User вы должны включить Пользователя в запрос.
Article.findAll({
include: [User],
});
https://sequelize.or&/master/manual/assocs.html
Комментарии:
1. Да, но как мне связать разных пользователей с полями «Автор» и «Редактор»?