【问题标题】:Build NodeJS Object from SQL从 SQL 构建 NodeJS 对象
【发布时间】:2019-04-05 05:10:29
【问题描述】:

我目前正在构建一个 NodeJS express API 以与 ReactJS 前端一起运行。来自一切都是文档的 mongodb,我对如何从 SQL 收集数据有点迷茫。让我解释一下。

要构建一个使用 API Rest 的 ReactJS 应用程序,我需要在前端有正确的 Objects 结构。

以用户可以在比赛中下注的基本应用程序为例,我会这样做

TABLE users (
  _id SERIAL PRIMARY KEY,

  username varchar(255) UNIQUE,
  password varchar(255)
);

TABLE matches (
    _id SERIAL PRIMARY KEY,

    EQA varchar(255), // These should be ids to teams but
    EQB varchar(255), // we try to keep it simple

    EQA_score INTEGER,
    EQB_score INTEGER,
);

TABLE bets (
    _id SERIAL PRIMARY KEY,
    user_id INTEGER REFERENCES users(_id),
    match_id INTEGER REFERENCES matches(_id),

    EQA_bet INTEGER,
    EQB_bet INTEGER,
);

然后要在 ReactJS 中显示预测的历史,使用这种结构的数据会非常简单:

{
    username: 'Random name',
    bets: [
        {
            EQA_bet: 1,
            EQB_bet: 0,
            match: {
                EQA: 'Paris',
                EQB: 'London',
                EQA_score: 1,
                EQB_score: 0,

            }
        },
        {
            ...
        }
    ]
}

要构建这个对象,我不知道什么是最好的:

  • 一个查询用户、投注和比赛并在 JS 中构建我的对象
  • 一个带有连接的查询,然后是一些长代码来构建我的对象
  • 其他一些我还不知道的工具/策略

感谢您理解我的问题。这就是在前端没有一个平面对象来解释

【问题讨论】:

  • 您正在寻找一个 SQL ORM。我使用过 Objection.js,我喜欢它。您需要的功能称为急切加载

标签: sql node.js postgresql


【解决方案1】:

@Yooomi,你可以使用sequelize NPM Package 来创建你的对象模型,并且可以定义不同模型之间的关系。你可以做所有的 C.R.U.D.通过此操作。您通过此包获得的响应将采用 JSON 格式。您可以根据需要更改它。

您可以浏览不同的博客并找到续集的用法。我在 google 上搜索并找到了这个 article,这似乎是一个好的开始。

让我知道这是否有用。

【讨论】:

  • 我正在看这个,这似乎可以填补这份工作,但我很遗憾我不会自己编写 SQL 查询
  • 是的,这就是将 SQL 表更改为对象模型以避免 SQL 语句并让框架处理所有 CRUD 操作的全部目的。如果你觉得我给了你答案,请喜欢我原来的答案。
猜你喜欢
  • 2019-06-19
  • 1970-01-01
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
  • 2016-12-13
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
相关资源
最近更新 更多