如何在Node.JS项目中正确调整我的代码?

[TL; DR]只读粗体字

我很新的Node.JS,但一直在罚款build设一些工作项目。 现在我有一个炙手可热的问题,我一直在谷歌search了大约半个小时,但我能find的是令人沮丧的轻触式教程,不回答我的问题,所以在这里我去…

我有一个使用Express框架的Node.JS项目其中一条路线的代码现在变得相当大,所以很自然地,我作为一个好程序员的直觉就是把它分解成它自己的类或者模块或者包或者任何它被称为的东西……这就是我的问题。 Node.JS的语言教程在哪里?人们如何将自己的代码划分为整齐的,易于阅读的块?

看来每个指导都是这样的

  1. 创build一个NodeJS项目
  2. 在项目中安装一个npm模块
  3. 添加一个调用模块的单线路由
  4. 轻拍自己,开始作为一个完整的JavaScript开发者申请工作。

这是在我的头! 我想用一些复杂的定制代码来深入和肮脏,但我也想用一些适当的,标准化的方式来做事情,但我不知道要创build什么文件夹,如何嵌套它们,遵循什么命名约定或类似的东西。 杰夫之路在哪里NodeJS?

请有人指点我一个好的教程的方向或围绕这个问题的一些文件,所以我可以继续我的学习。 提前致谢。

Node.JS绝对入门指南 ”中的“代码组织” 一节 :

在大多数应用程序中,您的代码将被拆分成多个文件。 什么文件去哪里没有标准或强制组织。 这不是Rails。 没有意见的概念在这里,控制器去那里。 你想做什么,就可以做什么。

所以有它。 这不是Rails😢你可以做任何你想做的事情

但是看看对SO的另一个问题的接受答案: 一个Node.js项目的文件夹结构,我们可以看到项目根目录中名为controllers的文件夹是一个常见的位置,而且在使用Express时创build的routes文件夹发电机引导一个新的项目被认为是一个替代这一点。

总结:所有的事情都考虑和启发我的经验,使用其他MVC框架(如Laravel)和@ programmingheadache的答案我要保留routes文件夹,但也创build一个controllers文件夹以及。

这样我就可以保留routes文件夹,专门用于定义项目的路由,并将逻辑单独保存在controllers内的多个文件中。 我遵循的道理是路由是文档 ,我会讨厌我的项目的任何未来的审查者陷入逻辑陷入困境,当他们只是试图build立哪些URI的早期基础知识和什么参数。

我通常做的是将我的逻辑放在控制器中,并从routes.js中引用它们。 例如:personController的方法find(id),然后在routes.js中放置一个路由router.get('/:id',personController.find);

personcontroller:

 module.exports = (app) => { return { find(req, res, next){ const id = req.params.id //return a user } }; 

}

路线:

 router.get('/:id', personController.find); 

将每个错误传递给下一个,并使用middelware来处理它们

问候

伊恩