到目前为止,我一直在开发客户端应用程序,没有任何自己的服务器在其后面运行,使用Webstorm的内置webserver为我的内容提供服务.

当人们使用带有Express的Node作为他们的Web服务器时,我经常看到的是关于html文件应该与Node还是与客户机代码放在一起的争论.

我知道html或css中包含的javascript文件最好存储在客户机目录中?

我的第一个问题是,像这样的文件夹 struct

app/
  client/ js files
  server/ node files

您应该在服务器或客户端目录中包含html页面吗?

第二:

有时我看到人们用express.static来表示静态文件,这里的静态文件到底意味着什么?今天,大多数网站不再是静态文档,而是通过操纵DOM被javascript修改的文件,所以我不认为任何html文件都应该被视为静态文件?

就我所见,使用Node而不是内置Web服务器的唯一优势是,如果我想访问数据库.

推荐答案

今天,大多数网站不再是静态文档,而是通过操纵DOM被javascript修改的文件,所以我不认为任何html文件都应该被视为静态文件?

页面本身的文件仍然是静态的.也就是说,您没有使用服务器端代码动态创建它们.在这种情况下,浏览器中发生的事情并不重要...其 idea 是,您不需要动态生成这些文件,因为它们的内容不会更改.

我知道html或css中包含的javascript文件最好存储在客户机目录中?

在服务器上存储文件的位置无关紧要.重要的是,您通常不希望从 node 提供静态文件.js应用程序.像express.static这样的工具只是为了方便.有时,您可能有一个低流量的应用程序.在这些情况下,使用 node 提供文件是完全可以接受的.jsapply.对于任何具有适当流量负载的服务器,最好将静态服务留给真正的web服务器,如Nginx,因为这些服务器比 node 效率高得多.js应用程序.

您应该将应用程序代码(用于动态响应的代码,如API服务器)保留在 node 中.js应用程序.

放置 node 也是一个好主意.js应用程序支持Nginx这样的代理,这样代理就可以处理离开 node 的所有客户端交互(比如慢客户端).js应用程序做它最擅长的事情.不过,在交通流量较低的情况下,这也无关紧要.

Node.js相关问答推荐

NodeJS缓冲区大小逻辑:为什么默认是8KB,而不仅仅是数据大小?

购物车是空的状态|本地存储不更新产品数量|Redux|

如何在不丢失其他键的情况下解开子文档数组,然后反转该过程?

如何在ejs模板中使用循环显示多个结果?

findoneandupdate()方法更新数据库,但其响应在请求中返回为null

dayjs的isSameOrAfter方法未按预期工作

Solidity 将数据位置从内存更改为存储

如何在mongoose 聚合中执行全文搜索

在新创建的 Angular 工作区上运行 ng lint 时出错

使用 .pipe(res) 向客户端发送音频不允许您搜索?

部署云功能 Firebase/Stripe 时出错

当我使用 uuid 代码意外崩溃,然后工作正常?

解决并行保存到 mongodb

带有 node.js 和 express 的基本网络服务器,用于提供 html 文件和assets资源

如何在 Node.js 中逐字节读取二进制文件

我可以向NPM添加调试脚本吗?

构建 vue cli 后如何运行生产站点

使用 Socket.io 将客户端连接到服务器

如何在 Node.js 中等待子进程完成

Node.js 17.0.1 Gatsby 错误-数字信封 routine ::不支持 ... ERR_OSSL_EVP_UNSUPPORTED