diff --git a/api/index.js b/api/index.js new file mode 100644 index 0000000..e7b2b36 --- /dev/null +++ b/api/index.js @@ -0,0 +1,23 @@ +const { serveNcmApi } = require('../server') + +export default async function handler(req, res) { + // EdgeOne Pages 环境配置 + process.env.NODE_ENV = 'production' + + // 初始化服务 + const app = await serveNcmApi({ + port: process.env.PORT || 3000, + host: '0.0.0.0' + }) + + // 将请求转发给 Express 应用 + return new Promise((resolve, reject) => { + app.handle(req, res, (err) => { + if (err) { + reject(err) + } else { + resolve() + } + }) + }) +} diff --git a/edgeone.config.json b/edgeone.config.json new file mode 100644 index 0000000..4a148d1 --- /dev/null +++ b/edgeone.config.json @@ -0,0 +1,33 @@ +{ + "functions": { + "*": { + "memory": 1024, + "runtime": "nodejs18" + } + }, + "routes": [ + { + "src": "/(.*)", + "dest": "/api/index.js", + "headers": { + "Access-Control-Allow-Credentials": "true", + "Access-Control-Allow-Methods": "GET,POST,PUT,DELETE,OPTIONS", + "Access-Control-Allow-Headers": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version" + } + } + ], + "build": { + "command": "pnpm install --registry=https://registry.npmmirror.com", + "include": [ + "api", + "module", + "util", + "plugins", + "public", + "data", + "server.js", + "package.json", + ".env" + ] + } +} diff --git a/edgeone.json b/edgeone.json deleted file mode 100644 index 38b8826..0000000 --- a/edgeone.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "functions": [ - { - "path": "/(.*)", - "method": ["GET", "POST", "PUT", "DELETE", "OPTIONS"], - "handler": "index.js", - "headers": { - "Access-Control-Allow-Credentials": "true", - "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", - "Access-Control-Allow-Headers": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version" - } - } - ] -}