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

docker-compose部署时Node.js容器访问CouchDB报url无效的ERR_ASSERTION错误

问题根因

你调用nano库传入的连接URL不符合要求:CouchDB的连接地址必须携带http://或https://协议前缀,你当前拼接的URL缺少协议头,直接以用户名密码开头,触发了nano内置的URL合法性校验断言报错。

修复方案

修改index.js中的URL拼接逻辑,在最前面补充http://前缀:

// 修改前
const db_url = `${admin_name}:${admin_pwd}@${db_host}:${db_port}/${db_name}`
// 修改后
const db_url = `http://${admin_name}:${admin_pwd}@${db_host}:${db_port}/${db_name}`

额外检查项

  • 确认你使用的couchdbinit:latest镜像已经预先创建了logs数据库,否则连接后插入数据会触发库不存在的404错误,你也可以调整初始化逻辑先检查并创建库再操作:
    const nano = require('nano')(`http://${admin_name}:${admin_pwd}@${db_host}:${db_port}`)
    const users = await nano.db.create(db_name).catch(() => nano.use(db_name))
    
  • 注意docker-compose中api服务同时配置了env_file和environment字段,同配置项的优先级为environment > env_file,你当前配置无同名冲突可正常运行,后续调整配置时注意该规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:45:03