繁体   English   中英

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

[英]How do I properly modulate my code in a Node.JS project?

[TL;DR] 只需阅读粗体字

我对 Node.JS 很陌生,但一直在构建一些工作项目。 现在我有一个迫切的问题,我已经在谷歌上搜索了大约半个小时,但我能找到的只是令人沮丧的轻触教程,这些教程没有回答我的问题,所以我开始......

我有一个使用 Express 框架的 Node.JS 项目 其中一条路线的代码现在变得越来越大,所以作为一名优秀程序员我的本能自然是将它分解成它自己的类或模块或包或任何要调用的东西......这就是我的问题. 关于 Node.JS语言的教程在哪里,以及如何将自己的代码分割成整齐调制、易于阅读的块?

似乎那里的每个指南都是这样的......

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

它正在做我的头! 我想深入了解一些复杂的定制代码,但我也想以某种适当的、标准化的方式做事,但我不知道要创建什么文件夹,如何嵌套它们,要遵循什么命名约定或类似的东西。 NodeJS的Jeff方式在哪里?

请有人为我指出一个好的教程或围绕这个主题的一些文档的方向,这样我就可以继续学习。 提前致谢。

Node.JS绝对入门指南 》的“代码组织”部分开始

在大多数应用程序中,您的代码将被拆分为多个文件。 没有标准的或强制性的组织将哪些文件存放在何处。 这不是Rails。 视图没有概念,控制器也没有。 你想做什么,就可以做什么。

这样就可以了。 这不是Rails😢您可以做任何想做的事😨

但是,在SO上另一个问题的公认答案: Node.js项目的文件夹结构中,我们可以看到,项目根目录中名为controllers的文件夹是一个公共位置,但是当您使用Express时创建的routes文件夹引导新项目的生成器被认为是对此的替代方案。

简介:我考虑使用其他MVC框架(例如Laravel)和@programmingheadache 的答案,并考虑和启发了所有事情,我将保留routes文件夹,同时还要创建一个controllers文件夹。

这样,我可以保留专门用于定义项目路由的routes文件夹,并在controllers内部的几个文件中将逻辑分开。 我遵循路由是文档的口号,我不希望我的项目的任何未来审阅者在尝试建立URI存在以及具有哪些参数的早期基础知识时都陷入逻辑困境。

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

人员控制器:

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

}

路线:

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

将每个错误传递给下一个并使用中间件来处理它们

问候

伊恩

为了

请有人为我指出一个好的教程或围绕这个主题的一些文档的方向,这样我就可以继续学习。 提前致谢。

部分:

├───models
│   ├───user.model.js
├───routes
│   ├───user.route.js
├───services
│   ├───user.service.js
├───controllers
│   ├───user.controller.js

来自https://riptutorial.com/node-js/example/32331/model-routes-controllers-services-directory-structure

src
│   app.js          # App entry point
└───api             # Express route controllers for all the endpoints of the app
└───config          # Environment variables and configuration related stuff
└───jobs            # Jobs definitions for agenda.js
└───loaders         # Split the startup process into modules
└───models          # Database models
└───services        # All the business logic is here
└───subscribers     # Event handlers for async task
└───types           # Type declaration files (d.ts) for Typescript

来自https://softwareontheroad.com/ideal-nodejs-project-structure/

项目结构必须是这样的:

-- app.js
-- server.js

配置\\

--databaseConfig.js

--thirdPartyConfig.js

--appConfig.js

控制器\\

--userCtrl.js

--productCtrl.js

--businessCtrl.js

中间件\\

--endpointHandler.js

--authHandler.js

--errorHandler.js

路线\\

--userRoute.js

--productRoute.js

--businessRoute.js

实用程序\\

--encryptFile.js

--uploadFile.js

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM