我正在开发一个包含Node.js,Express,Socket.io和MySQL模块的新项目,并且是这些技术的初学者,我有一些关于构建项目和良好实践的问题。
现在,我的代码结构如下:
├── node_modules
├── package.json
├── server.js
├── server.socket.live.js # Socket.io namespace
├── server.database.js # For database configuration and connection pool
├── server.database.resources.js # Model for the 'resources' table
├── server.route.live.js
└── ...
对于项目的当前状态,它运行良好,但代码增长很快,唯一的目录将使代码难以导航和维护。
所以我一直在尝试用以下规则来构建我的代码:
考虑到这一点,我提出了这个解决方案:
├── package.json
├── node_modules
| └── ...
├── server.js
├── server
| ├── node_modules
| | ├── database
| | | ├── package.json
| | | ├── database.js
| | | ├── resources.js
| | | └── ...
| ├── socket
| | ├── live.js # With live subfolder if file grows too big
| | └── ...
| ├── routes
| | ├── live.js # With live subfolder if too many sub-routes
| | └── ...
理论上它很有用:使用这样的结构,我可以轻松地在server / node_modules中添加新的“全局”模块,以及新的路由或套接字命名空间,只要它们彼此独立。
所以我的问题是:这会在实践中发挥作用,还是有更好的方法来实现? Node是否能够要求server / node_modules中的文件具有良好的缓存?如何在我的git存储库中包含server / node_modules子文件夹(同时仍然忽略根节点_模块)?
非常感谢!