Javascript node.js应用程序服务器的结构是什么?
我正在用socket.io制作一个node.js应用程序,我想知道正确的文件夹结构是什么。我有这些文件Javascript node.js应用程序服务器的结构是什么?,javascript,node.js,express,directory,socket.io,Javascript,Node.js,Express,Directory,Socket.io,我正在用socket.io制作一个node.js应用程序,我想知道正确的文件夹结构是什么。我有这些文件 Server.js package.json 及 Client.js Index.html 我还想在index.html中显示一些图像(png)。()我看到的一些文件夹名称是public、static、server和app,但我不确定它们的用途。我的应用程序使用socket.io、http、path和express 这是我的第一个问题,如果它没有正确形成,我很抱歉 谢谢。没有“适合所有
- Server.js
- package.json
- Client.js
- Index.html
路由器
、数据库模型
、测试
、资产
、模板
、与业务逻辑相关的服务
。足够让它有条理,并尝试在学习时开始思考如何维护解耦组件
对于更大的项目,我建议您进一步研究这个主题,Robert C.Martin的Clean Architecture对您来说是一本很棒的书,可以深入研究软件体系结构,并提出一个更适合您和项目需要的不断发展的项目结构。没有一本“适合所有人”的书项目文件夹结构。它实际上取决于您正在工作的项目,并且会受到架构决策的强烈影响和变异
对于小型项目和学习目的,可以使用“标准”文件夹结构,如Express.js在其中使用的文件夹结构,也可以使用类似的文件夹结构
对于单人项目,我建议您保持简单,只是尝试在具有臭名昭著的不同职责的模块之间设置一些边界,例如路由器
、数据库模型
、测试
、资产
、模板
、与业务逻辑相关的服务
。足够让它有条理,并尝试在学习时开始思考如何维护解耦组件
对于更大的项目,我建议你对这个主题做进一步的研究,罗伯特·C·马丁(Robert C.Martin)的《清洁体系结构》(Clean Architecture)是一本很棒的书,可以让您深入研究软件体系结构,并提出一个更适合您的需求和项目的不断发展的项目结构。如何组织服务器端文件完全取决于您,有许多不同的方法可以做到这一点,没有一个“正确的”方法或“最佳实践”方法。为了便于部署,您只需要在所有片段之间有一个一致的相对位置,以便它们都可以使用相对路径相互引用,而不依赖于任何绝对路径 绝对正确的一点是,您的public文件(发送到客户端的内容)通常应该位于它们自己的层次结构中,可以与服务器文件共享一个公共父级,但服务器文件不应该位于public层次结构中。所以,像这样的事情很好:
project
server
server.js
package.json
public
client.js
index.html
根据您拥有的公共文件数量以及其他人可能正在处理这些文件,通常会按类型将它们分开:
project
server
server.js
package.json
node_modules
various modules you're using in your server code
public
scripts
client.js
html
index.html
images
logo.png
style
main.css
database
database stuff here
这是因为服务器和公共层次结构是分开的。这有助于解决一大堆问题,并且在您开发哪些内容是公开共享的,哪些内容不是公开共享的时,完全清楚。它还允许您使用诸如express.static()
之类的工具,它根据请求的路由和目录中的文件名之间的名称匹配,自动为目录中的文件提供服务。这些类型的自动路由必须来自指定的公共目录,否则会有意外提供私有服务器文件的风险
如果您有数据库文件,您可以将它们放在与服务器相同级别的另一个目录中
服务器文件或公共文件在其层次结构中的具体布局完全取决于您,只要将它们分开,您需要什么服务
需要考虑的几点:
express.static()
或其他工具来自动为某些类型的文件提供服务。如果是这样,它们需要被干净地隔离在一个或多个目录中,这样使用express.static()
如何组织服务器端文件完全取决于您,有许多不同的方法可以做到这一点,没有单一的“正确”方法或“最佳实践”方法。为了便于部署,您只需要在所有片段之间有一个一致的相对位置,以便它们都可以使用相对路径相互引用,而不依赖于任何绝对路径 绝对正确的一点是,您的public文件(发送到客户端的内容)通常应该位于它们自己的层次结构中,可以与服务器文件共享一个公共父级,但服务器文件不应该位于public层次结构中。所以,像这样的事情很好:
project
server
server.js
package.json
public
client.js
index.html
取决于有多少公共文件