Node.js和项目结构

时间:2016-06-07 13:23:06

标签: javascript node.js git

我正在开发一个包含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
└── ...

对于项目的当前状态,它运行良好,但代码增长很快,唯一的目录将使代码难以导航和维护。

所以我一直在尝试用以下规则来构建我的代码:

  • 我需要可以从任何地方包含的全局文件(例如:数据库和模型)。
  • 路线和其他子组件必须(并且是)彼此独立。
  • 节点必须能够正确缓存每个文件,因此不同的路径('./database.js'和'../database.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子文件夹(同时仍然忽略根节点_模块)?

非常感谢!

0 个答案:

没有答案