Sequelize:这些方法应该放在哪里

时间:2016-05-16 21:04:41

标签: javascript node.js express orm sequelize.js

你有两张桌子:

  • 用户
  • 帐户

用户可以拥有多个帐户。

您需要向用户添加帐户。使用Sequelize,您可以将实例方法附加到名为addAccount()的User模型。但是,如果从不同的角度来看,Account表实际上是在创建一个新记录,因此Account模型可以有一个名为createAccount()的类方法。

哪个语义更正确?或者,如果您在用户实例上调用addAccount()并且该方法在Account模型上调用类方法createAccount(),那么解决方案应该是两者的混合吗?

考虑到这是一个节点/快递应用程序,需要验证创建帐户的信息,然后从请求中解析。你会在哪里进行验证/解析?在调用帐户创建方法之前的路由中?或者作为User模型或Account模型的类方法中的“私有”函数(__parseReq)?

1 个答案:

答案 0 :(得分:0)

如果我在你的位置,我宁愿在用户实例上使用addAccount。主要原因是,通过这样做,您可以轻松地说新创建的帐户属于"有问题的用户实例。

无论如何,如果(由于某些原因)您确实需要在没有用户实例的情况下创建个人帐户,您仍然可以使用Account.create()

对于值验证,您可以在执行续订操作之前手动验证,也可以在模型定义中定义验证规则(更多信息here)。