叒建博客

2020-5-25

这是第三次建博客了,希望这是最后一次。这次不同的是,博客的代码是自己写的,当做练手,编程游乐场。第一篇博文就来讲讲建立这个博客的过程吧。

建立博客

最初是在 youtube 上看到了一个博主发的:How To Build A Markdown Blog Using Node.js, Express, And MongoDB,通过 Node.js,Express 和 MongoDB 来建立一个博客。于是就跟着做下来,顺便再次重新开启自己博客的想法。这已经是第三次开博客了,第一次是用 WordPress 搭的,第二次是 Hexo,这是第三次,自己撸一个。

跟着 YouTube 上这个视频走一圈下来,基本上就可以完成一个非常简单的博客应用,遇到不懂的地方谷歌搜一遍,学习起来还是非常快的。

Express 基础用法就是 app.use() 进行中间件配置,app.get()app.post()等4个方法进行 Http 请求处理。一个请求会根据中间件配置的顺序,全部都过一遍,最后到达相应的 HTTP 请求处理的方法,使用起来还是非常简单的。前端页面通过 ejs 模板进行渲染,MongoDb 数据库通过 mongoose 模块来使用,也非常便捷。

改进

做完后,得到的博客网站是直接在网页上编辑 Markdown,直接写入数据库,这个并不是我想要的。我个人还是倾向于 Hexo 的方式,在本地编写 Markdown,这样以前用 Hexo 搭建的博客上的博文也可以继续用起来。于是我就对代码进行了改造,在gitee上面开一个仓库,专门用来存 Markdown 的博文。通过 gitee 的webhook功能,在仓库的博文更新后,自动调用博客的 API,博客再拉取仓库上的 Markdown 文件更新博客上的数据库。

gitee 的 webhook 页面
gitee 的 webhook 页面

之后我又增加了一个简易的图床,博文用到的图片都可以存在同一个服务器上。在电脑上通过 uPic 可以自定义图片上传接口,方便的上传图片。

运维

博客网站搭建在一个阿里云的 1G CPU,512M 内存的 ECS 服务器上,流量我选择按用量付费,由于流量很少,一直没有超出扣钱的阈值,用了好几天也没扣过钱。

自己建服务器搭博客,运维也是挺麻烦的一件事,为了让服务器更好的运行 Node,学习使用了 PM2。为了开机自启动,学习了 Systemd

另外,使用 ServerCat 这个 App 可以方便快捷的查看服务器运行状态。

后续

博客还有很多不完善的地方,后续也会慢慢完善,比如手机屏幕适配、RSS 订阅功能、留言功能、夜间模式等。