增加腾讯云edgeone pages一键部署

This commit is contained in:
huangxd- committed 2025-09-17 21:32:14 +08:00
1 parent 6d2ed77b1e
commit 7d303eea8d
5 files changed
+50 -21

No files matched your search

+2 -1
View File
@@ -126,9 +126,10 @@ Settings > Functions > Advanced Setting > Function Region 切换为 Hong Kong,
## 部署到 腾讯云 edgeone pages 【推荐】
### 一键部署
[![使用 EdgeOne Pages 部署](https://cdnstatic.tencentcs.com/edgeone/pages/deploy.svg)](https://edgeone.ai/pages/new?template=https://github.com/huangxd-/danmu_api&install-command=npm%20install&start-command=npm%20start&root-directory=.%2F&env=TOKEN)
[![使用 EdgeOne Pages 部署](https://cdnstatic.tencentcs.com/edgeone/pages/deploy.svg)](https://console.cloud.tencent.com/edgeone/pages/new?template=https://github.com/huangxd-/danmu_api&project-name=danmu-api&root-directory=.%2F&env=TOKEN)
> 注意:部署时请在环境变量配置区域填写你的TOKEN值,该变量将用于API服务的身份验证相关功能
> 项目名称不能有下划线
## 部署到 Cloudflare
+1 -1
View File
@@ -1,6 +1,6 @@
// 全局状态(Cloudflare 和 Vercel 都可能重用实例)
// ⚠️ 不是持久化存储,每次冷启动会丢失
const VERSION = "1.0.1";
const VERSION = "1.0.2";
let animes = [];
let episodeIds = [];
let episodeNum = 10001; // 全局变量,用于自增 ID
+8 -19
View File
@@ -1,25 +1,14 @@
{
"version": 1,
"routes": [
"name": "danmu-api",
"outputDirectory": "./",
"rewrites": [
{
"pattern": "/",
"function": "index"
"source": "/",
"destination": "/node-functions/index.js"
},
{
"pattern": "/api/*",
"function": "index"
},
{
"pattern": "/*/api/*",
"function": "index"
"source": "/*",
"destination": "/node-functions/[[...path]].js"
}
],
"functions": {
"index": {
"src": "danmu_api/worker.js"
}
},
"env": {
"TOKEN": "87654321"
}
]
}
+3
View File
@@ -0,0 +1,3 @@
import { onRequest } from './index.js'; // 改为 onRequest,支持所有方法
export { onRequest }; // 复用 index.js 的 onRequest
+36
View File
@@ -0,0 +1,36 @@
import { handleRequest } from '../danmu_api/worker.js';
export const onRequest = async (context) => {
const { request, env } = context;
// 获取协议和主机名,使用属性访问而非 get 方法
const baseUrl = `https://localhost`;
// 调试:打印 headers 和原始 URL
console.log('Request URL:', request.url);
console.log('Request Headers:', request.headers);
// 构造完整的 URL
let fullUrl;
try {
fullUrl = new URL(request.url, baseUrl).toString();
console.log('Request fullUrl:', fullUrl);
} catch (error) {
console.error('URL Construction Error:', error);
return new Response('Invalid URL', { status: 400 });
}
// 创建新的 request 对象,替换 url
const modifiedRequest = new Request(fullUrl, {
method: request.method,
headers: request.headers,
body: request.body,
redirect: request.redirect,
credentials: request.credentials,
cache: request.cache,
mode: request.mode
});
// 传递修改后的 request 和 env 给 handleRequest
return await handleRequest(modifiedRequest, env);
};