重组Nodejs Express项目



我想重组Nodejs Express项目,该项目在routes目录中包含v1和v2文件夹。当将代码重组为MVC方法时,我应该为v1提供MVC结构,并在v2下提供另一个MVC结构吗?

理想情况下,控制器的版本应为v1v2等,因为它们将包含您的应用程序逻辑,该逻辑将不时更改,并且您需要支持用户使用旧版本应用程序的逻辑(回退兼容性(。

模型将包含存储在数据库中的记录的模式,该模式应在控制器的所有版本中保持一致。因此,它应该保留在v1v2等之外。(例如,无论应用程序逻辑版本的差异如何,User都将包含相同的字段(。模型中的更改通常不会太剧烈,因为你必须以一种不需要以后进行巨大更改的方式来定义它们。如果发生剧烈更改,你必须相应地更新所有版本控制器的逻辑。

视图,可以是版本化的,也可以不版本化,这取决于您是否希望根据api版本提供单独的视图。

总的来说,项目结构可能看起来像这个

src/
models/
ModelA.js
ModelB.js
...
routes/
v1/
index.js
...
v2/
...
views/
index.ejs
...
server.js
package.json

最新更新