簡體   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