这是MVC模型的设计模式问题。
我正在使用GeddyJs(用于Node.js),但它与Sails.js的模式相同,等等。
有时我会说到一点,我不知道是否应该将代码放入Controller或模型中。
例如:
我有一个SerialKey
模型,其中每个序列都应该有一个唯一的生成ID,相应于我的算法(比方说,像blue cat
这样的随机名称,nice car
...)
这是生成,检查它是否存在于数据库中,插入,应该由Controller或模型完成的过程吗?
因为正如我所看到的,每个create方法都应遵循这种模式,这意味着它应该在Model上。但是,因为它是逻辑的东西,应该在Controller ......
在这些情况下该怎么办?什么地方我把它,如果它的工作,它没关系?
答案 0 :(得分:1)
这是生成,检查它是否存在于数据库中,插入,应该由Controller或模型完成的过程吗?
模型。我更喜欢"脂肪模型,瘦身控制器"设计,虽然当然在这里有不同的意见。我将控制器视为"粘合代码"而且他们更难测试,因为他们在输入和输出方面都有合作者。因此,保持他们瘦。生成默认值,确保模型中存在唯一性和其他面向数据的逻辑等约束。