我正在寻找一个使用序列化ORM的示例nodejs应用程序。
我主要担心的是,如果由于require()依赖关系循环而导致模型之间具有复杂的关系,那么几乎不可能在单独的js文件中定义模型。也许人们在一个非常长的文件中定义了所有模型?
我主要对模型的定义和在整个应用程序中的使用感兴趣。我想验证一下我自己正在做的事情是“好的”做事方式。
这种情况下的诀窍不是初始化文件中的模型 , 而只是提供初始化所需的信息,并让集中的模块负责模型的设置和实例化。
因此,步骤如下:
require
这是带有相应源代码的此解决方案的更详细描述:
http://jeydotc.github.io/blog/2012/10/30/EXPRESS-WITH- SEQUELIZE.html
它在许多方面都古老而有限!
首先 ,正如@jinglesthula在评论中提到的(我也经历过)-要求这些文件存在问题。这是因为require与readdirSync!的工作方式不同!
readdirSync
其次 -您的关系 非常 有限-该代码不提供这些关联的 选项 ,因此您 无法 创建belongsToMany它需要的through属性。您可以进行最基本的关联。
belongsToMany
through
第三 -您在模型关系方面非常有限!如果仔细阅读代码,您会发现关系是一个 Object 而不是 Array ,因此,如果要建立 多个 相同类型的关联(例如两次belongsTo),您将无法做到!
belongsTo
第四 -您不需要那个单身的东西。nodejs中的每个模块本身都是单例的,因此所有这些使它毫无原因地变得非常复杂。
您应该看到Farm的答案!(本文的链接已断开,但我将使用sequelize中的此官方示例对其进行修复:https : //github.com/sequelize/express- example/blob/master/models/index.js-您可以浏览整个项目以了解发生了什么)。
ps:我正在编辑这篇文章,因为它被推高了,人们甚至都看不到任何新答案(就像我一样)。
编辑: 只是将链接更改为同一文章的副本,但在Github页面中