我正在使用帶有 postgreSQL 和 nodejs 的 sequelize。
我的資料庫有 3 個關系,
1個關系用戶,
1個關系鏈接,
1個關系表user_has_link(它是用戶和鏈接之間的關系表),3列:
- 用戶身份
- 鏈接ID
- link_url(它包含用戶定義的 url:例如https://github.com/aviateur22 )
我在鏈接和用戶之間建立關系模型:
User.belongsToMany(Link,{
as: 'usersLinks',
through: 'user_has_link',
});
Link.belongsToMany(User,{
as: 'linksUsers',
through: 'user_has_link'
});
最后是我獲取用戶資訊的查詢:
const user = await User.findByPk(userId,
{
include:{
model: Link, as: 'usersLinks'
}
});
對資料庫的請求是好的,但我錯過了用戶的url_link(我不明白為什么):
例如請求的回應:
avatarKey: "thumbnail-fce0848f-9509-4180-b7fa-c2bf908ed396.png"
email: "[email protected]"
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, …}
非常感謝您的幫助西里爾
uj5u.com熱心網友回復:
您應該使用您需要的所有額外欄位顯式定義聯結表模型并指示它而不是使用字串user_has_linkin belongsToMany,請參閱高級多對多
uj5u.com熱心網友回復:
根據 Anatoly 的建議,我更新了我的 belongsToMany 關系。
const UserLink = require('./userLink');
User.belongsToMany(Link,{
as: 'usersLinks',
through: UserLink,
});
我有我的所有資料,包括url_link
{
"id": 2,
"login": "aviateur22",
"email": "[email protected]",
"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"
感謝您
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/453608.html
標籤:javascript 节点.js 续集.js
