专为腾讯云 EdgeOne Pages 平台优化的 Twikoo 评论系统后端。
简洁 · 安全 · 免费
- 基于 EdgeOne Pages 边缘计算,全球加速
- 使用 KV 存储,无需额外数据库
- 支持邮件通知、即时消息推送
- 一键部署,开箱即用
您可以通过 腾讯云 EdgeOne Pages 一键部署。
直接点击此按钮一键部署:
查看 腾讯云 EdgeOne Pages 文档 了解更多详情。
需要注意,你还是需要新建一个 KV,并且绑定到项目中:
Twikoo 的完整教程,参考 Twikoo 官方项目: https://github.com/twikoojs/twikoo 以及 Twikoo 的快速上手
手动部署到 EdgeOne Pages 的方法如下:
-
准备工作
- 注册腾讯云账号并开通 EdgeOne 服务
-
创建 EdgeOne Pages 项目
- 登录腾讯云 EdgeOne 控制台
- 创建新的 Pages 项目
- 选择 GitHub 作为代码源
- 关联本仓库。或者直接下载本仓库,手动上传到 EdgeOne Pages 里(会自动触发部署)。
-
配置 KV 存储
- 在 EdgeOne Pages 控制台创建 KV 命名空间
- 将 KV 命名空间绑定到项目,变量名设为:
TWIKOO_KV
-
配置跨域(可选)
- 在 EdgeOne Pages 控制台添加环境变量
CORS_ALLOW_ORIGIN - 格式:
example.com,blog.example.com(多个域名用逗号分隔) - 不设置则允许所有域名访问
- 在 EdgeOne Pages 控制台添加环境变量
-
触发部署
- 三种方法触发不熟: ① Fork 代码到自己仓库,EdgeOne Pages 进行关联,后续会自动触发部署。② 直接本地安装 edgeone-cli 情况下,
edgeone pages link、edgeone pages deploy部署。③ 手动上传代码到 EdgeOne Pages 里覆盖。 - 部署完成后,获取你的 EdgeOne Pages 地址作为 twikoo 的环境配置
- 三种方法触发不熟: ① Fork 代码到自己仓库,EdgeOne Pages 进行关联,后续会自动触发部署。② 直接本地安装 edgeone-cli 情况下,
-
前端配置
<script> twikoo.init({ envId: 'your-edgeone-pages-url', // EdgeOne Pages 地址 el: '#tcomment' }) </script>
关键步骤截图:
- Node.js: 18+ (EdgeOne Pages 自动提供)
- KV 存储: 必须创建并绑定 TWIKOO_KV 命名空间
-
KV 存储连接失败
- 检查 KV 命名空间是否正确绑定
- 确认变量名为
TWIKOO_KV - 重新部署项目
-
邮件通知不工作
- 验证 SMTP 服务配置是否正确
- 检查邮箱是否开启了 IMAP/SMTP 服务
- 确认邮箱密码或应用专用密码
-
评论提交失败
- 检查网络连接和 Edge Function 地址
- 确认 KV 存储空间是否充足
- 查看部署日志排查错误
当前测试以下功能正常:
- 评论提交、评论回复、评论点赞、评论删除等前台评论操作。
- 邮件通知(支持 SendGrid 和 MailChannels)。
- IP 获取正常(使用 EdgeOne 提供的
eo-connecting-ip)。 - UA 获取、浏览器类型正常。
- IP 归属地查询正常。
KV 存储的评论:
本项目结构专为 EdgeOne Pages 平台优化:
# 安装 EdgeOne CLI (在 CloudStudio 中已预装)
npm install -g edgeone
# 本地开发调试
edgeone pages dev
# 项目检查
node build.cjs项目结构说明:
├── edge-functions/
│ └── api/
│ └── kv.js # Edge Function KV 数据库操作层
│ └── api/kv.js # Edge Function - KV 数据库操作
├── node-functions/
│ ├── index.js # Node Function 主入口(处理评论逻辑)
│ ├── ip2region-searcher.js # IP 归属地查询器(纯内存实现)
│ └── ip2region-data.js # IP 数据库(构建时自动生成)
├── package.json # 项目依赖配置
├── build.cjs # 构建检查脚本
└── .cnb.yml # CNB 环境配置(可选)
│ ├── index.js # Node Function - 评论业务逻辑
│ ├── ip2region-searcher.js # IP 归属地查询(纯内存)
│ └── ip2region-data.js # IP 数据库(构建时生成)
├── build.cjs # 构建脚本
└── package.json
架构说明:
- Edge Function (
edge-functions/api/kv.js): 运行在边缘节点,负责 KV 数据库的读写操作 - Node Function (
node-functions/index.js): 运行在 Node.js 环境,处理评论业务逻辑、邮件通知等 - Node Function 通过内部 HTTP 调用 Edge Function 的 KV API
开发注意事项:
- Edge Functions 使用 KV 存储作为数据库
- Node Functions 用于处理评论逻辑和邮件通知
- 环境变量在 EdgeOne Pages 控制台配置
- 本地开发时需要模拟 KV 环境
如果您的改动能够帮助到更多人,欢迎提交 Pull Request!


