Estoy usando Sequelize con PostgreSQL y Nodejs.
mi base de datos tiene 3 relaciones,
1 usuario de relación,
1 vínculo de relación,
1 tabla de relación user_has_link (es una tabla de relación entre el usuario y el enlace) con 3 columnas:
mis modelos de relación de secuela entre el enlace y el usuario:
User.belongsToMany(Link,{ as: 'usersLinks', through: 'user_has_link', }); Link.belongsToMany(User,{ as: 'linksUsers', through: 'user_has_link' });y finalmente mi consulta para obtener información de un usuario:
const user = await User.findByPk(userId, { include:{ model: Link, as: 'usersLinks' } });la solicitud a la base de datos está bien, pero me falta el url_link del usuario (no entiendo por qué):
por ejemplo, una respuesta de la solicitud:
avatarKey: "thumbnail-fce0848f-9509-4180-b7fa-c2bf908ed396.png" email: "aviateur@ht.fr" id: 2 login: "aviateur22" sex: "homme" usersLinks: Array(2) 0: {id: 1, compagny_name: 'github', picture_name: 'github.png', created_at: '2022-03-30T13:02:31.920Z', updated_at: null, …} 1: {id: 2, compagny_name: 'linkedin', picture_name: 'linkedin.png', created_at: '2022-03-30T13:02:31.920Z', updated_at: null, …}muchas gracias por tu ayuda cirille
Debe definir un modelo de tabla de unión explícitamente con todos los campos adicionales que necesita e indicarlo en lugar de usar la cadena user_has_link en belongsToMany , vea muchos a muchos avanzados.
Siguiendo el consejo de Anatoly, actualicé mi relación de Pertenecer a Muchos.
const UserLink = require('./userLink'); User.belongsToMany(Link,{ as: 'usersLinks', through: UserLink, });Tengo todos mis datos, incluido url_link
{ "id": 2, "login": "aviateur22", "email": "aviateur@hotmail.com", "sex": "homme", "avatarKey": "thumbnail-fce0848f-9509-4180-b7fa-c2bf908ed396.png", "usersLinks": [ { "id": 1, "compagny_name": "github", "picture_name": "github.png", "created_at": "2022-03-30T13:02:31.920Z", "updated_at": null, "UserLink": { "user_id": 2, "link_id": 1, "link_url": "https://github.com/aviateur22", "created_at": "2022-03-31T07:10:32.010Z", "updated_at": "2022-03-31T07:11:47.370Z", "UserId": 2, "LinkId"gracias