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

Node.js + ArangoJS调用collections()遇ECONNREFUSED错误求助

解决ArangoJS连接ECONNREFUSED错误

核心问题分析

错误connect ECONNREFUSED ::1:8529说明Node.js程序无法连接到ArangoDB服务,大概率是服务未运行、地址端口不匹配或权限配置问题,按以下步骤排查:

1. 确认ArangoDB服务正在运行

  • Windows:按Win+R输入services.msc打开服务列表,找到ArangoDB相关服务,确认状态为「正在运行」,未运行则右键启动。
  • macOS(brew安装):终端执行brew services list,查看arangodb状态为started才正常,否则执行brew services start arangodb。
  • Linux:终端执行systemctl status arangodb,显示active (running)才正常,否则执行sudo systemctl start arangodb。
  • Docker部署:终端执行docker ps,检查ArangoDB容器是否在运行,未运行则执行docker start <容器ID/名称>。

2. 修正连接地址与端口

错误显示连接的是IPv6地址::1,若ArangoDB未开启IPv6监听,可将代码里的url改为http://127.0.0.1:8529(强制用IPv4连接)。同时检查ArangoDB配置文件(通常为arangod.conf)里的endpoint设置,默认是tcp://0.0.0.0:8529,若端口被修改,代码需对应调整。

3. 验证数据库与账号权限

  • 打开ArangoDB Web管理界面(默认http://localhost:8529),用root账号登录,确认testDB数据库已创建。
  • 检查userTest账号是否存在,且拥有testDB的访问权限(在「Users」页面找到该用户,编辑权限,给testDB分配至少「Read/Write」权限)。

4. 修正代码里的错误

你的代码有两个新手常见问题:

  • 缺少Database导入语句,根据模块类型添加:
    • CommonJS(Node.js默认):const { Database } = require('arangojs');
    • ES模块:import { Database } from 'arangojs';
  • ArangoJS的Database构造函数不是异步的,不需要用await,直接实例化即可。

修正后的完整代码示例:

const { Database } = require('arangojs');

const myColl = async () => {
    try {
        const db = new Database({
            url: "http://127.0.0.1:8529",
            databaseName: "testDB",
            auth: {username: "userTest", password: "userTest"},
        });
        console.log(db);
        try {
            let collections = await db.collections();
            console.log(collections);
        } catch (err) {
            console.log("获取集合失败:", err);
        }
    } catch (err) {
        console.log("数据库登录失败:", err);
        return;
    }
};

myColl();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 07:15:38