为什么要零依赖

个人站点最容易死在"依赖腐烂"上:年初装的一堆包,年末 npm install 就报错。我的做法是把需求砍到最小,只用 Node 自带的模块。

import { createServer } from 'node:http';
import { DatabaseSync } from 'node:sqlite';

const db = new DatabaseSync('./data/site.db');
const server = createServer(async (req, res) => {
  res.writeHead(200, { 'content-type': 'text/html; charset=utf-8' });
  res.end('<h1>张师傅的技术小屋</h1>');
});

server.listen(4310);

> Node 22.5 起内置了 node:sqlite,Node 24 已经可以直接使用,不必再编译 native 驱动。

路由怎么切

没有框架,路由就是一张表:

路径作用是否需要登录
/首页
/posts文章列表
/works作品展示
/admin后台管理
/api/*数据接口视接口而定

安全上的三个底线

  1. 所有用户内容进模板前先转义,宁可多转一次;
  2. 静态文件解析后必须校验真实路径仍在允许目录内;
  3. 修改类接口校验 Origin,会话 Cookie 用 HttpOnly + SameSite=Lax

小结

零依赖不是炫技,而是把"三年后还能一键启动"当成硬需求。