javascript - Sequelize : Where should these methods reside

标签 javascript node.js express orm sequelize.js

您有 2 张 table :

  • 用户
  • 账户

  • 一个用户可以有多个帐户。

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

    哪个在语义上更正确?或者解决方案应该是您在用户实例上调用 addAccount() 和该方法在 Account 模型上调用类方法 createAccount() 的混合?

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

    最佳答案

    如果我处于你的位置,我更愿意使用 addAccount在用户实例上。主要原因是因为这样做,您可以轻松地说新创建的帐户“属于”相关用户实例。

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

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

    关于javascript - Sequelize : Where should these methods reside,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37263240/

    相关文章:

    javascript - 为什么循环数组时 for..in 比 for 循环更快

    node.js - MongoDB - 检查日期范围 A 是否与其他日期范围 b 重叠

    javascript - Heroku Node.js 应用程序崩溃 |模块.js :340 error

    node.js - CSRF 和 Multer - 无效的 CSRF token 错误

    javascript - 带分页的同位素布局?或者至少是增量加载?

    javascript - Ember 3.5 属于关系未解决

    javascript - dygraphs可以自定义x轴缩放吗

    javascript - 将加密 hmac 转换为 crypto-js hmac 字符串

    javascript - nodejs socket.io mysql 在套接字引用上缺少错误处理程序

    javascript - 表达错误处理模式