Hello,我的博客网站上线了

2026-03-31
其他

前言

作为一名前端开发者,一直想拥有一个属于自己的个人博客——不仅能记录技术成长、分享学习心得,还能亲手搭建整个项目,将所学的技术栈落地实践。经过一段时间的规划和开发,我用Nuxt.js搭建了前端,Express.js搭建了后端,完成了个人博客网站的开发与部署。现在它已经成功上线了!

1. 项目初衷

为什么要自己搭建博客,而不是使用Hexo、WordPress等成熟工具?一方面,我希望博客能完全按照自己的需求定制,比如自定义页面风格、添加个性化功能(如技术标签分类、文章搜索、留言板);另一方面,也是为了实践前后端分离的开发模式,将Nuxt和Express这两个常用技术栈结合起来,巩固所学知识,提升项目实战能力。
我的博客核心需求很明确:简洁美观的界面、稳定的文章发布与展示功能、支持标签分类和搜索、后台管理系统(用于发布/编辑/删除文章)、数据持久化存储,以及简单的留言互动功能

2. 技术选型

前端:Nuxt.js

选择Nuxt.js而非传统的Vue.js,主要有两个核心原因:

  • 服务端渲染(SSR)优势:博客网站的核心是文章内容,SSR能提升页面加载速度,同时有利于SEO优化,让搜索引擎更好地抓取文章内容,这对于个人博客的曝光至关重要。
  • 开箱即用的特性:Nuxt.js基于Vue.js封装,内置了路由、打包、部署等一系列工具,无需手动配置复杂的webpack、router等,能大幅提升开发效率,尤其适合个人项目快速落地。
    此外,Nuxt.js支持Vue3和TypeScript,我本次使用的是Nuxt3+TypeScript,既能享受Vue3的Composition API带来的开发便捷性,也能通过TypeScript提升代码的可维护性和稳定性。

后端:Express.js

后端选择Express.js,主要是因为它的轻量、灵活和易用性:

  • 轻量无侵入:Express是Node.js生态中最基础、最流行的Web框架,没有过多的强制约束,可根据项目需求灵活扩展,适合个人博客这种中小型项目。
  • 生态完善:Express拥有丰富的中间件,比如处理请求体的body-parser、身份验证的jsonwebtoken、跨域的cors等,能快速实现后端所需的各类功能,无需重复造轮子。
  • 与前端适配性好:同样基于Node.js,前后端使用同一种语言(JavaScript/TypeScript),开发时无需切换语言环境,且接口交互更加顺畅。
    其他技术栈
  • 数据库:使用MongoDB,非关系型数据库,无需定义固定表结构,适合存储博客文章、标签、留言等非结构化/半结构化数据,且操作便捷,与Express配合度高。
  • UI组件库:使用Element Plus,基于Vue3的组件库,组件丰富、样式美观,能快速搭建前端页面,减少自定义样式的工作量。
  • 部署:前端部署到Vercel(Nuxt官方推荐,支持SSR部署,免费额度足够个人使用),后端部署到阿里云服务器,数据库使用MongoDB Atlas(免费版足够个人博客使用)。