gpt4 book ai didi

mysql - 我应该在 Node-Express 应用程序的 Controller 和模型之间有一个层吗?

转载 作者:可可西里 更新时间:2023-11-01 08:38:54 26 4
gpt4 key购买 nike

我有一个 Express 应用程序,我在其中使用 Sequelize 与我的 MySQL 数据库进行交互。这些模型只代表具有相应字段的数据库表,不包含任何额外的逻辑。我希望我的 Controller 不要太胖,为此我认为我应该在它之间有一个包含所有逻辑并使用模型与数据库交互的层。

这是一个好的做法吗?如果是,我应该如何称呼这一层,它究竟应该包含什么?

提前致谢!

最佳答案

首先,很好的问题。

其次,我会这样做:

在您的模型中,假设您有一个用户模型 users.js。

在您的用户/数据库界面的模型中,在您之后

const User = module.exports = <sql declaration and model reference>;

您可以像这样创建其他模块导出:

module.exports.getUserById = function(id, callback){
<Sequelize logic goes here>
};

这本质上是您的模型类用于处理例程的中间件/ Controller 。

您可以通过导入用户模型然后调用导出的模块来使用它:

const User = require("../models/users")

然后是时候调用您的函数了:

User.getUserById(id, function(err, user) {
<some logic with regard to your user>
});

关于mysql - 我应该在 Node-Express 应用程序的 Controller 和模型之间有一个层吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50354950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com