Node.js运行Kanyerest开源API出现addEventListener is not defined错误求助
问题根因
你提供的代码是专为Cloudflare Workers runtime编写的,addEventListener('fetch')、Response 等API不属于原生Node.js的内置能力,直接使用node命令运行代码就会抛出addEventListener is not defined的报错。
解决方法
- 方案1:按Cloudflare Workers标准流程部署运行
- 全局安装Cloudflare Workers官方脚手架
wrangler:npm install -g wrangler - 在项目根目录执行
wrangler init初始化Worker项目,将现有代码替换到生成的入口文件中 - 执行
wrangler dev即可本地启动测试服务,执行wrangler deploy可将服务部署到Cloudflare线上环境
- 全局安装Cloudflare Workers官方脚手架
- 方案2:改写为原生Node.js可直接运行的版本
替换原有代码为以下内容,即可使用node index.js直接启动本地服务,默认监听3000端口:
const http = require('http'); const quotes = require("./quotes.json"); const headers = { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET", "Access-Control-Allow-Headers": "Content-Type", }; const server = http.createServer((req, res) => { try { const quote = quotes[Math.floor(Math.random() * quotes.length)]; res.writeHead(200, { ...headers, "content-type": "application/json" }); res.end(JSON.stringify({ quote: quote })); } catch (error) { res.writeHead(500, headers); res.end("An unexpected error ocurred"); } }); const PORT = 3000; server.listen(PORT, () => { console.log(`服务运行在 http://localhost:${PORT}`); });
内容的提问来源于stack exchange,提问作者Christopher Briscoe
相关产品推荐
相关产品推荐

