Loading...
Loading...
Compare original and translation side by side
edgeone-pages-deploymiddleware.jsedgeone-pages-deploymiddleware.jsfspathcryptoResponseres.send()[[default]].jsedgeone pages devedgeone pages devdevCommandedgeone.jsondevpackage.jsonmiddleware.jsmiddleware.tsNextRequestNextResponsemiddleware.jsfspathcryptoResponseres.send()[[default]].jsedgeone pages devedgeone pages devedgeone.jsondevCommandpackage.jsondevmiddleware.jsmiddleware.tsNextRequestNextResponsemiddleware.jsUser needs request interception / redirect / rewrite / auth guard / A/B test?
→ Middleware → read middleware.md
User needs a lightweight API with ultra-low latency (simple logic, no npm)?
→ Edge Functions → read edge-functions.md
User needs KV persistent storage? (⚠️ must enable KV in console first)
→ Edge Functions + KV Storage → read kv-storage.md
User needs complex backend logic / npm packages / database / WebSocket?
→ Node Functions → read node-functions.md
User needs Express or Koa framework?
→ Node Functions with [[default]].js entry → read node-functions.md
User has a pure static site with no server-side logic?
→ No functions needed — just deploy static files
Need a project structure template?
→ read recipes.mdUser needs request interception / redirect / rewrite / auth guard / A/B test?
→ Middleware → read middleware.md
User needs a lightweight API with ultra-low latency (simple logic, no npm)?
→ Edge Functions → read edge-functions.md
User needs KV persistent storage? (⚠️ must enable KV in console first)
→ Edge Functions + KV Storage → read kv-storage.md
User needs complex backend logic / npm packages / database / WebSocket?
→ Node Functions → read node-functions.md
User needs Express or Koa framework?
→ Node Functions with [[default]].js entry → read node-functions.md
User has a pure static site with no server-side logic?
→ No functions needed — just deploy static files
Need a project structure template?
→ read recipes.md| Feature | Edge Functions | Node Functions | Middleware |
|---|---|---|---|
| Runtime | V8 (like Cloudflare Workers) | Node.js v20.x | V8 (edge) |
| npm packages | ❌ Not supported | ✅ Full npm ecosystem | ❌ Not supported |
| Max code size | 5 MB | 128 MB | Part of edge bundle |
| Max request body | 1 MB | 6 MB | N/A (passes through) |
| Max CPU / wall time | 200 ms CPU | 120 s wall clock | Lightweight only |
| KV Storage | ✅ Yes (global variable) | ❌ No | ❌ No |
| WebSocket | ❌ No | ✅ Yes | ❌ No |
| Use case | Lightweight APIs, edge compute | Complex APIs, full-stack | Request preprocessing |
| 特性 | Edge Functions | Node Functions | Middleware |
|---|---|---|---|
| 运行时 | V8(类似 Cloudflare Workers) | Node.js v20.x | V8(边缘节点) |
| npm 包支持 | ❌ 不支持 | ✅ 完整 npm 生态 | ❌ 不支持 |
| 最大代码体积 | 5 MB | 128 MB | 属于边缘打包产物 |
| 最大请求体大小 | 1 MB | 6 MB | N/A(直接透传) |
| 最大 CPU/运行时间 | 200 ms CPU | 120 s 时钟时间 | 仅支持轻量操作 |
| KV Storage | ✅ 支持(全局变量) | ❌ 不支持 | ❌ 不支持 |
| WebSocket | ❌ 不支持 | ✅ 支持 | ❌ 不支持 |
| 适用场景 | 轻量 API、边缘计算 | 复杂 API、全栈应用 | 请求预处理 |
| Task | Read |
|---|---|
| Edge Functions (lightweight APIs, V8 runtime, KV Storage) | edge-functions.md |
| KV Storage (persistent key-value storage on edge) | kv-storage.md |
| Node Functions (npm, database, Express/Koa, WebSocket) | node-functions.md |
| Middleware (redirects, rewrites, auth guards, A/B testing) | middleware.md |
| Project structure templates and common recipes | recipes.md |
| Debugging and troubleshooting | troubleshooting.md |
| 任务 | 参考文档 |
|---|---|
| Edge Functions(轻量 API、V8 运行时、KV Storage) | edge-functions.md |
| KV Storage(边缘端持久化键值存储) | kv-storage.md |
| Node Functions(npm、数据库、Express/Koa、WebSocket) | node-functions.md |
| Middleware(重定向、重写、权限校验、A/B 测试) | middleware.md |
| 项目结构模板及常见实践 | recipes.md |
| 调试与故障排查 | troubleshooting.md |
edgeone pages initedge-functions/node-functions/edgeone pages initedge-functions/node-functions/my-project/
├── edge-functions/ # Edge Functions (V8 runtime)
│ └── api/
│ ├── hello.js # → /api/hello
│ ├── users/
│ │ ├── list.js # → /api/users/list
│ │ ├── [id].js # → /api/users/:id (dynamic)
│ │ └── index.js # → /api/users
│ └── [[default]].js # → /api/* (catch-all)
├── node-functions/ # Node Functions (Node.js runtime)
│ └── api/
│ ├── data.js # → /api/data
│ ├── ws.js # → /api/ws (WebSocket)
│ └── [[default]].js # → /api/* (Express/Koa entry)
├── middleware.js # Middleware (runs before all requests)
├── edgeone.json # Project config (auto-generated)
├── package.json
├── index.html # Static frontend
└── ...my-project/
├── edge-functions/ # Edge Functions(V8 运行时)
│ └── api/
│ ├── hello.js # → /api/hello
│ ├── users/
│ │ ├── list.js # → /api/users/list
│ │ ├── [id].js # → /api/users/:id(动态路由)
│ │ └── index.js # → /api/users
│ └── [[default]].js # → /api/*(兜底路由)
├── node-functions/ # Node Functions(Node.js 运行时)
│ └── api/
│ ├── data.js # → /api/data
│ ├── ws.js # → /api/ws(WebSocket)
│ └── [[default]].js # → /api/*(Express/Koa 入口)
├── middleware.js # Middleware(在所有请求前运行)
├── edgeone.json # 项目配置(自动生成)
├── package.json
├── index.html # 静态前端
└── ...edgeone pages devhttp://localhost:8088/console.log()edgeone pages devhttp://localhost:8088/console.log()edgeone pages linkedgeone pages linkedgeone pages env ls # List all
edgeone pages env pull # Pull to local .env
edgeone pages env pull -f .env.prod # Pull to specific file
edgeone pages env add KEY value # Add
edgeone pages env rm KEY # Removecontext.env.KEYedgeone pages env ls # 列出所有环境变量
edgeone pages env pull # 拉取到本地 .env 文件
edgeone pages env pull -f .env.prod # 拉取到指定文件
edgeone pages env add KEY value # 添加环境变量
edgeone pages env rm KEY # 删除环境变量context.env.KEY