心火 DAILY

第 06 版·代码

用 Node 自带的 SQLite 搭一个博客

Node 22 之后,node:sqlite 终于可以零依赖用了。这个博客就是被它救活的。

为什么不用现成的框架

试过 Hexo、Hugo、Astro,都很漂亮,但每次发文都要走一遍构建流程,像在给机器打工。我想要的是:打开后台,写,点发布,完事。

于是就有这个东西:

  • 零依赖,不需要 npm install
  • 数据存在一个 SQLite 文件里
  • 前台是服务端直出,没有打包和 hydration
  • 后台是一个能用的 Markdown 编辑器

建表

js
const db = new DatabaseSync('data/blog.db');
db.exec(`
  CREATE TABLE IF NOT EXISTS posts (
    id    INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    body  TEXT NOT NULL,
    created_at TEXT NOT NULL
  )
`);

写入也很直白:

js
db.prepare('INSERT INTO posts (title, body, created_at) VALUES (?, ?, ?)')
  .run(title, body, new Date().toISOString());

几个注意点

事项说明
并发单进程 + WAL,个人博客绰绰有余
备份复制 data/ 目录即可
部署node server.js,前面挂个反向代理

跑起来只需要:

bash
node server.js
# http://127.0.0.1:4100

简单,但够用。

本版编辑 / 醍醐之 · 第 06 版 · 2026-10-18

按 Esc 关闭 · 支持标题、正文、标签