Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

297
Vistas
Node.js CouchDB and Nano 'error happened in your connection'

I have been looking around for well over 2 hours now trying to find SOMETHING that would give me any kind of direction with this issue but simply cannot find it.

I am using Node.js and CouchDB with docker-compose. I am also using express and nano. I have stripped my server.js file down to nearly nothing and still keep getting this

Error:

/usr/src/app/node_modules/nano/lib/nano.js:137
        reject(new Error('error happened in your connection'))
                ^
 
Error: error happened in your connection
    at responseHandler (/usr/src/app/node_modules/nano/lib/nano.js:137:16)
    at /usr/src/app/node_modules/nano/lib/nano.js:427:13
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
 
Node.js v17.0.1

I have tried about 10 different ways of laying out the url but just cannot get any kind of indication as to why it just will not work. I have tried using curl -X PUT admin:admin@127.0.0.1:5984/posts/"001" -d '{"name":"Conner"} ' and it gets inserted without and issue.

server.js

'use strict';

const express = require('express');
var nano = require('nano')('http://admin:admin@127.0.0.1:5984');
var posts = nano.use('posts');

const app = express();
const bodyParser = require("body-parser");

const cors =require('cors');
app.use(cors());

app.use(bodyParser.urlencoded({ 
    extended: true 
}));
 
const PORT = 8080;
const HOST = '0.0.0.0';


async function asyncCall() {
  const response = await posts.insert({_id: "001"}, 'rabbit')
  return response
}
asyncCall();

app.use('/', express.static('public'));
console.log('up and running');


app.listen(PORT,HOST);

Dockerfile

FROM node:latest

EXPOSE 8080

WORKDIR /usr/src/app

RUN npm install express --save
RUN npm install nano --save
RUN npm install cors --save
RUN npm install -g loadtest --save

COPY server.js /usr/src/app/server.js
COPY /public /usr/src/app/public

CMD ["node", "server.js"]

docker-compose.yml

version: '3'
services:

 node1: 
  build: ./s1
  depends_on:
   - couchdb1
  container_name: s1a4
  ports:
   - "81:8080"

 couchdb1:
  image: couchdb:3.2.0
  container_name:  cdb1
  ports:
    - "5984:5984"
  environment:
    COUCHDB_USER: admin
    COUCHDB_PASSWORD: admin
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Since CouchDB is running in its own container and not on localhost, your connection string needs to point to the other container instead of 127.0.0.1 (localhost).

Since you called the CouchDB service "couchdb1", the connection string should instead be;

admin:admin@couchdb1:5984 
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda