ExpressJs 中使用 socketIO 的最佳文件夹结构

Ras*_*707 4 mongodb node.js express socket.io

项目的最佳文件夹结构是什么,包括:

  • 2个数据库(mongodb、influxdb)
  • 套接字io...

Stf*_*lev 10

这完全取决于个人喜好。按照您最舒服的方式设置您的文件夹结构。

\n

例如,我喜欢将我的代码拆分为子模块,或者简单地说,根据代码的用途,将其放在不同的目录中。

\n

我个人会选择几个文件夹:

\n
.{src}\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 controllers                # All controller operations according the routes are stored here\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 authController.ts      # Handles authentication requests\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 usersController.ts     # Handles users route requests\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 database                   # All database connections are stored here. For example you have two databases\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 db.ts                  # Initialize DB connection\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 middleware\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 authenticated.ts       # Decode and verify JWT token\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 error.ts               # Common Error Handler\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 logger.ts              # Control logging levels\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 models                     # Simple descriptor of the database tables\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 usersModel.ts          # DB model for users\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 schema                     # Schemas that are used for CRUD operations with the models\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 users.ts               # DB Schema for users\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 listeners\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 socketsManager.ts      # Socket listeners/emitters handle\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app.ts                     # Entry file for the project\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .env                       # Store environment variables\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 routes.ts                  # All routes initializer\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ...\n
Run Code Online (Sandbox Code Playgroud)\n

尽管您可能不喜欢我所采用的命名或顺序,但您可以创建自己喜欢的名称或顺序。您可以做的另一件事是查看互联网上的一些约定或一些最流行的项目(例如框架)。

\n

毕竟,这完全取决于您的需求以及您觉得工作的舒适度。

\n