作者:俊惠芸菁亚扬 | 来源:互联网 | 2023-05-19 00:57
到目前为止,我一直在开发我的客户端应用程序,而不使用我自己的服务器在其后面运行,使用Webstorm的内置Web服务器来提供我的内容.
当人们使用Node with Express作为他们的网络服务器时,我经常看到的是关于你是否应该将你的html文件与节点或客户端代码放在一起的争论.
我理解html或css中包含的Javascript文件最好存储在客户端目录中?
所以我的第一个问题是,像这样的文件夹结构
app/
client/ js files
server/ node files
您是否应该在服务器或客户端目录中包含html页面?
其次:
有时我看到人们使用express.static
静态文件,这里的静态文件究竟是什么?今天大多数网站不再是静态文档,而是通过操纵DOM来改变Javascript的文件,所以我不认为任何html文件应该被视为静态文件?
据我所知,使用Node而不是内置Web服务器的唯一优势是,如果我想拥有数据库访问权限.
1> Brad..:
今天大多数网站不再是静态文档,而是通过操纵DOM来改变Javascript的文件,所以我不认为任何html文件应该被视为静态文件?
您网页的文件本身仍然是静态的.也就是说,您不是使用服务器端代码动态创建它们.在这种情况下,浏览器中发生的事情无关紧要......我们的想法是您不需要动态生成这些文件,因为它们的内容不会改变.
我理解html或css中包含的Javascript文件最好存储在客户端目录中?
将文件存储在服务器上的位置并不重要.重要的是您通常不希望从Node.js应用程序提供静态文件.类似express.static
的工具仅为方便起见.有时,您可能会使用低流量应用程序.在这些情况下,使用Node.js应用程序提供文件是完全可以接受的.对于具有良好流量负载的任何东西,最好将静态服务留给真正的Web服务器,如Nginx,因为这些服务器比Node.js应用程序效率更高.
您应该在Node.js应用程序中保留应用程序代码(提供动态响应的代码,例如API服务器).
将Node.js应用程序放在像Nginx这样的代理之后也是一个好主意,这样代理就可以处理所有客户端交互(例如,喂食慢速客户端),让Node.js应用程序完成它最擅长的工作.但是,在低流量情况下,这并不重要.
2> JDillon522..:
有时我看到人们使用express.static来表示静态文件,这里静态文件究竟隐含了什么?
我相信你指的是这段代码通常会发现一个快递应用程序的app.js
文件:
app.use(express.static(path.join(__dirname, 'public')));
express.static()
是一个中间件,它将目录名称映射到路径目录以便于查找.通常你会有:
- public
|_ Javascripts
|_ stylesheets
|_ images
如果您的Javascripts
目录中有脚本,则无需键入包含它的完整路径.只是:
./Javascripts/script.js
静态文件最好被视为NPM或Bower之类的文件.它们是您自己的脚本,样式表,图像等.它与动态或静态页面无关.
至于你的第一个问题:
如果您使用节点,我个人不确定是否需要这种项目架构.如果您正在为您的客户端应用程序使用节点和Ember.js或Angular之类的东西,那么我个人会将我的实际应用程序脚本放在public/Javascripts/
目录中.但那就是我.
在一天结束时,选择一个你喜欢的项目结构,并坚持下去.但是,如果其他人正在从事该项目,请坚持使用共同的惯例.它让生活更轻松.