【发布时间】:2021-06-11 20:29:26
【问题描述】:
P.S 我可能不太了解 mvc 原理,但我一直认为业务逻辑应该发生在模型中 - 如果我错了,请纠正我
我正在编写项目并使用 mvc 模式。
路由器接受请求并传递给控制器,它获取数据并将其发送给模型。模型检查数据以进行验证,如果成功,则使用数据库。我的模型有非常大的代码并混合了验证。
exports.modelFunction = (data) => {
// validation data ...
// working with the database
}
有了新的修复,我很难阅读代码。
我决定创建一个 utils / validation / 文件夹,我将在其中处理所有可能的模型验证,是的,现在代码更具可读性
exports.modelFunction = (data) => {
const validation = validationModel(data);
if (!validation) return {ok: false, message: 'Validation failed'}
// working with the database
}
我认为已经有一些其他模式坚持逻辑分离并解决像我这样的问题。所以我决定向你请教。
【问题讨论】:
-
如果这是某种 API,请暂时忘记设计模式,而是考虑“类型”。您正在从客户端获取数据,并且您需要该数据来确认特定结构。我想在它进入模型系统之前验证它之前。模型系统应该只处理已知正确的数据。无论如何,如果这是一个 API,请考虑研究 JSON Schema,因为它比手动编写验证规则要好得多。
标签: javascript node.js design-patterns