gpt4 book ai didi

node.js - Sequelize JS 主键相关的包括

转载 作者:行者123 更新时间:2023-12-03 22:41:28 24 4
gpt4 key购买 nike

我目前正在研究 REST API,使用 SequelizeJS 和 Express。

我已经习惯了 Django Rest Framework,我正试图找到一个类似的功能:
我有一个表 User 和一个表 PhoneNumber。
我希望能够以 JSON 形式返回用户,包括其电话号码的主键列表,如下所示:

{
"firstName": "John",
"lastName": "Doe",
"phoneNumbers": [23, 34, 54],
}

有没有办法在 sequelize 中简单有效地做到这一点,或者我是否必须编写转换字段的函数,例如:
"phoneNumbers": [
{ "id": 23, "number": "XXXXXXXXXX" },
{ "id": 34, "number": "XXXXXXXXXX" },
{ "id": 54, "number": "XXXXXXXXXX" }
]

成我上面有什么?

谢谢,
吉尔托

最佳答案

Sequelize finder-methods 接受和选项 attribute 允许您定义它应该查询模型的哪些属性。见 http://docs.sequelizejs.com/manual/tutorial/querying.html#attributes

这也适用于连接:

User.all({
include: [
{ model: Phonenumber, attributes: ['id']}
]
})
.then(function(users) {
})

将执行
SELECT user.*, phonenumber.id FROM user INNER JOIN phonenumber ON ...

但是要将电话号码转换为 api 响应中的整数数组 [1,2,...] ,您仍然必须手动将 id 映射到数组中,否则您将获得 [{"id": 1}, {"id": 2},...] 数组。

但实际上我 建议不要 这样做。对象数组比整数数组更具前瞻性。因为如果您决定某天使用附加属性扩展电话号码对象,则您的 api 客户端不需要更改任何内容。

关于node.js - Sequelize JS 主键相关的包括,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43954025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com