在节点中提供文件与数据库的内容

Rik*_*ard 11 mysql json node.js server

我正在制作旧版静态网站的新版本,该网站长达50多个静态页面.

因此,我使用旧内容制作了一个JSON文件,因此新网站可以更多CMS(具有常用页面的模板),因此后端获得更多干.

我想知道我是否可以通过JSON将这些内容提供给我的观点,或者我是否应该在MySQL数据库中提供它?

我正在使用Node.js,并且在Node I中可以将该JSON文件存储在内存中,因此当用户请求数据时不会进行文件读取.

这有正确的做法吗?服务缓存的JSON文件或通过MySQL提供性能差异?

有问题的文件大约是400Kb.如果文件大小与一个技术的选择相关?

hd1*_*hd1 6

为什么要添加另一层间接?只需直接从JSON提供意见.

  • @ hd1不,mysql也会在RAM中缓存内容.真正的问题不是你将动态系统*建立在*上的东西(一个为每个请求从头开始构建页面的问题,即使构建过程的结果只有在视图模板改变时才会有所不同,所以基本上从不),但是是否创建一个生成静态页面一次的系统,然后在模板或内容更改时简单地重新生成它们将是更好的选择. (2认同)

小智 5

通常,数据库用于服务频繁变化的动态内容,记录具有一对多或多对多关系,您需要根据各种条件查询数据。

在您描述的情况下,看起来您可以使用缓存在服务器内存中的 JSON 文件。只要确保在文件内容更改时更新缓存,即通过重新启动服务器、通过 http 请求触发缓存更新或在文件系统级别监视文件。

除此之外,您应该考虑在服务器和浏览器上缓存静态文件以获得更好的性能

  1. 启动时在服务器内存中缓存和 Gzip 静态文件(html、js、css、jpg)。这可以使用 npm 包(如connect-static)轻松完成
  2. 通过设置正确的响应头来使用客户端的浏览器缓存。一种方法是在 Express 路由定义上添加 maxAge 标头,即:

app.use "/bower", express.static("bower-components", {maxAge: 31536000})

是一篇关于浏览器缓存的好文章