gpt4 book ai didi

node.js - 如何组织使用 sequelize 的 Node 应用程序?

转载 作者:IT老高 更新时间:2023-10-28 21:46:53 32 4
gpt4 key购买 nike

我正在寻找一个使用 sequelize ORM 的示例 nodejs 应用程序。

我主要担心的是,如果这些模型由于 require() 依赖循环而彼此之间存在复杂的关系,那么在单独的 js 文件中定义模型似乎几乎是不可能的。也许人们将所有模型都定义在一个非常长的文件中?

我主要对如何定义模型以及如何在整个应用中使用模型感兴趣。我想验证一下我自己做的事情是“好”的做事方式。

最佳答案

短篇小说

在这种情况下,诀窍不是在文件中初始化模型,而只是为其初始化提供必要的信息,并让一个集中的模块负责模型的设置和实例化。 p>

所以步骤是:

  • 拥有多个模型文件,其中包含有关模型的数据,例如字段、关系和选项。
  • 有一个单例模块来加载所有这些文件并设置所有模型类和关系。
  • 在 app.js 文件中设置您的单例模块。
  • 从单例模块中获取模型类不要在您的模型文件上使用 require,而是从单例模块中加载模型。

更长的故事

下面是这个解决方案的更详细的描述以及相应的源代码:

http://jeydotc.github.io/blog/2012/10/30/EXPRESS-WITH-SEQUELIZE.html

编辑:这是一个非常古老的答案! (阅读信息)

它在很多方面都过时且受到限制!

  • 首先,正如@jinglesthula 在评论中提到的(我也经历过) - 需要这些文件存在问题。这是因为 requirereaddirSync 的工作方式不同!

  • 第二个 - 你在关系上非常受限 - 代码没有为这些关联提供选项,所以你是 < strong>UNABLE 创建 belongsToMany 因为它需要 through 属性。你可以做最基本的联谊会。

  • 第三 - 你在模特关系方面非常有限!如果你仔细阅读代码,你会发现关系是一个Object而不是一个Array,所以如果你想多一个相同类型的关联(比如有两次 belongsTo)- 你不能!

  • Fourth - 你不需要那个单例的东西。 nodejs 中的每个模块本身都是单例的,所以这一切都变得非常复杂。

您应该会看到 Farm 的回答! (文章的链接已损坏,但我将使用 sequelize 的官方示例修复它:https://github.com/sequelize/express-example/blob/master/models/index.js - 您可以浏览整个项目以了解正在发生的事情)。

附言我正在编辑这篇文章,因为它的投票率很高,以至于人们甚至都看不到任何新的答案(就像我一样)。

编辑:只是将链接更改为同一帖子的副本,但在 Github 页面中

关于node.js - 如何组织使用 sequelize 的 Node 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12487416/

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