gpt4 book ai didi

javascript - 使用 postgres 在 express 应用程序中嵌套数据

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

所以我刚开始表达并一直在玩一个程序,您可以在其中创建事件并邀请其他用户。我知道您可以使用连接表来获取数据,但我希望有一种方法可以使用 POSTGRESQL 来让数据嵌套自己,以显示用户根据 id 主持、参加和受邀参加的事件一个事件。

这是我到目前为止所拥有的:

app.get('/api/users', function(req, res) {
var list = [];
User.findAll().then(function(users) {
for( var i in users) {
var item = {
id: users[i].dataValues['id'],
firstName: users[i].dataValues['firstname'],
lastName: users[i].dataValues['lastname'],
email: users[i].dataValues['email'],
phone: users[i].dataValues['phone'],
image: users[i].dataValues['image'],
confirmed: users[i].dataValues['confirmed'],
events: []
}
Event.findAll({ where: { hosting_id: user.id }}).then(function(events) {
for( var i in events) {
item.events.push({
hosting: event[i].dataValues['id'],
attending: event[i].dataValues['id'],
invites: event[i].dataValues['id']
})
}
})
list.push(item)
}
res.json(list)
})
});

我已经能够让它循环并可以通过 id 找到与用户关联的所有事件,但我仍然在努力解决如何让它与每个事件连接以便它可以显示事件 id ,就像下面的例子:
{
"id": "4",
"firstName": "Jon",
"lastName": "Doe",
"email": "jdoe@test.com",
"phone": "1234567890",
"image": "",
"events": {
"hosting": [
"1"],
"attending": [],
"invites": [
"3", "4"]
},
"confirmed": true
}

除了显示信息之外,我还试图弄清楚它是否需要嵌套在 POSTGRES 数据库中,或者我是否可以只使用连接表之类的东西,但仍然可以在没有其他 API 调用的情况下显示信息。

任何帮助将不胜感激!先感谢您!

最佳答案

Event.findAll 是一个 Promise 并且异步运行。
您需要确保仅在该电话之后才格式化您的回复。

你可以尝试这样的事情,看看它是否有效:

Promise.all(
users.map(function(user) {
return Event.findaAll({ where: { hosting_id: user.id }})
.then(function(events) {
var formatEvents = events.map(function(event) {
return {
hosting: event.id,
attending: event.id,
invites: event.id
};
})
return Promise.resolve({
id: users[i].dataValues['id'],
firstName: users[i].dataValues['firstname'],
lastName: users[i].dataValues['lastname'],
email: users[i].dataValues['email'],
phone: users[i].dataValues['phone'],
image: users[i].dataValues['image'],
confirmed: users[i].dataValues['confirmed'],
events: formatEvents
});
})
})
)
.then(function(list) {
res.json(list)
})

或者您还可以添加用户和事件之间的关系,并在获取用户时包含事件模型。

关于javascript - 使用 postgres 在 express 应用程序中嵌套数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40367508/

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