У меня есть две модели User
и FriendRequest
. User
может иметь много FriendRequests
, а FriendRequest
принадлежит User
. Когда я пытаюсь User.findOne
и включить FriendRequest
, я получаю
{
...
FriendRequest: null
}
models / User.js
const User = sequelize.define(
"User",
{
...
},
{
tableName: "users"
}
);
User.associate = function(models) {
// associations can be defined here
User.hasMany(models.FriendRequest);
};
models / FriendRequest.js
"use strict";
module.exports = (sequelize, DataTypes) => {
const FriendRequest = sequelize.define(
"FriendRequest",
{
senderId: DataTypes.INTEGER,
receiverId: DataTypes.INTEGER,
status: DataTypes.INTEGER,
UserId: DataTypes.INTEGER
},
{
tableName: "friend_requests"
}
);
FriendRequest.associate = function(models) {
FriendRequest.belongsTo(models.User);
// associations can be defined here
};
return FriendRequest;
};
graphql-modules / user.js
type User {
...
FriendRequest: [FriendRequest]
}
graphql-modules / friend_request.js
type FriendRequest {
id: Int!
senderId: Int!
receiverId: Int!
status: Int!
UserId: Int!
}
services / users_service.js
let searchUser = async (args) => {
try {
let user = await User.findOne({
where: args,
include: [
{
model: FriendRequest
}
]
});
let request = await FriendRequest.findAll({ where: { UserId: args.id } });
console.log(request);
return user;
} catch (err) {
throw new Error(err);
}
};
Выше, ядобавил переменную запроса, чтобы посмотреть, могу ли я запросить FriendRequest, и да, я получил правильные результаты.
Я также попытался сделать
include: [
{
model: FriendRequest,
where: {UserId: args.id}
}
]
Но он возвращает user = null;
Мне нужна переменная пользователя для возврата массива FriendRequests. В базе данных есть строки: Id senderId receiveId status UserId 7 5 2 0 5