爱前端

博客诞生记四:如何存储文章数据

前面我介绍了博客的目录系统,这篇文章来说说博客里面是如何存储以及读取文章数据的。

  • 目前的这个博客是没有传统意义上的数据库的,有的只是一个简单的json文件。

  • 1、文章的基本信息是如何存储的呢,这里用了一点点旁门左道,哈哈,我把文章的基本信息存储在了每一篇markdown 文档里面,写定了固定的样式,以下是代码:

博客文章基础信息存储格式

  • 这样的前后标识符在markdown 文章转译为 html 的时候会被原样解析出来,因此就把一些基本信息存在了这里面。markdown格式的文章转译为html时用了node 的 marked 包,使用非常简单,这里是他们的官方网站,marked的目的是快速的编译超大块的Markdown文本而不必担心结果会出乎意料或者花费很长时间。marked最初是为 Node.JS编写,现在已完全兼容客户端浏览器。
  • 既然基础信息会被原样转译过来,那就把转译后的内容截取一下好了,每篇文章都会有自己的标题,那就在基本信息写好后,加上一个一级标题(markdown里面用#表示),以这个一级标题为界限截取文章内容。
  • 2、如何读取文章呢,这里使用了 node 的一个包---fs,用来读取文件的,通过 fs.readFile 函数来读取指定目录下的文件,这里存储文件基础内容的时候使用了正则匹配,匹配包括基础信息的特殊标示符来获取文章的基础信息。
  • 3、这个json文件存储了文章的基本信息,由于文章并不像其他内容,更新速度很快,所以写了个setInterval计时,每五分钟重新读取一次文件夹内的以‘.md’为后缀名的文件。这样既保证了json文件是新的,也不至于读取的太频繁而消耗资源。

自己总结以为才发现其实整站也没什么太多特殊的东西,要勤动手总结梳理知识。

博客诞生记已经全部介绍完毕,现在的这套框架还还只适合文章数量不是很多的简单博客,之前做个一个测试,文章数量到达4850,服务器就扛不住了,以后文章内容多了再做优化吧!