You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ArangoDB Foxx服务安装报ReferenceError: URL is not defined如何解决

错误原因

ArangoDB 3.x 内置的JavaScript运行时基于旧版V8引擎,没有全局暴露URL、URLSearchParams等Web标准API。你使用的Joi v17+版本依赖@sideway/address库,该库会直接读取全局URL变量,因此触发ReferenceError报错。
你看到的issue提到的.foxxignore相关问题属于文件缺失类的偶发故障,你当前的场景属于依赖版本和Foxx运行时不兼容,和ignore文件无关。

解决方法

方案1:降级Joi到兼容版本

直接将package.json中的Joi版本锁定到v15.x,这个版本没有引入@sideway/address依赖,完全适配Foxx运行时:

"dependencies": {
  "joi": "^15.1.1"
}

同步把@types/joi的版本降级到匹配v15的版本,避免TypeScript类型校验报错。

方案2:手动添加URL全局polyfill

在你的Foxx服务入口文件(对应你配置的dist/entry.js的源文件)最顶部,所有其他依赖引入之前,手动挂载全局URL变量:

// 入口文件第一行先执行polyfill
const { URL } = require('url')
globalThis.URL = URL
// 再引入joi等其他业务依赖

方案3:使用Foxx内置校验库

ArangoDB官方已经适配了Joi的兼容版本,内置在@arangodb/joi模块中,你可以直接引入使用,不需要额外安装第三方Joi依赖,兼容性最好。


内容的提问来源于stack exchange,提问作者JonasLevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:24:01