Eureka JavaScript Client

raw JSON →
4.5.0 verified Fri May 01 auth: no javascript

A JavaScript client for Netflix OSS Eureka service registry (v4.5.0, actively maintained). Enables Node.js services to register, heartbeat, and discover instances from Eureka servers. Supports YAML configuration, environment-specific overrides (EUREKA_ENV, NODE_ENV), custom request middleware for auth, and delta registry updates. Key differentiator: full Eureka client implementation with instance management, unlike lighter discovery-only libraries.

error TypeError: Eureka is not a constructor
cause Using default import or incorrect require pattern that imports the whole module object.
fix
Use const { Eureka } = require('eureka-js-client'); or import { Eureka } from 'eureka-js-client';
error Error: listen EADDRINUSE: address already in use :::8080
cause Port conflict when multiple instances run on same host without unique ports.
fix
Configure each instance with a different port in the instance configuration or bind to port 0 for dynamic assignment.
error Error: Failed to fetch registry: ECONNREFUSED
cause Eureka server is not running or unreachable at configured host/port.
fix
Verify Eureka server is up and accessible; check eureka.host and eureka.port configuration.
gotcha Constructor options overwrite YAML config but merge behavior is not documented; missing fields from options may fallback to YAML defaults, causing silent misconfiguration.
fix Always explicitly set all required options in constructor if using YAML fallback; avoid relying on partial overrides.
breaking In v4.0.0, default export changed to named export. Code using `const Eureka = require('eureka-js-client')` will get the whole module, not the constructor.
fix Use destructured require: `const { Eureka } = require('eureka-js-client')`.
deprecated The `request` library used internally is deprecated and unmaintained since 2020, with known security vulnerabilities.
fix Use requestMiddleware to patch auth/headers; consider forking or switching to a maintained client like `@netflix/eureka-js-client`.
gotcha EUREKA_ENV env var takes precedence over NODE_ENV but many users expect NODE_ENV to be the sole configuration driver.
fix Set EUREKA_ENV explicitly to control environment config file selection, or ensure NODE_ENV is set if EUREKA_ENV is absent.
npm install eureka-js-client
yarn add eureka-js-client
pnpm add eureka-js-client

Instantiate and start a Eureka client with minimal configuration, then fetch instances by app ID and stop after 10 seconds.

const { Eureka } = require('eureka-js-client');

const client = new Eureka({
  instance: {
    app: 'my-service',
    hostName: 'localhost',
    ipAddr: '127.0.0.1',
    port: 8080,
    vipAddress: 'my-service.vip',
    dataCenterInfo: { name: 'MyOwn' },
  },
  eureka: {
    host: '192.168.99.100',
    port: 8761,
    servicePath: '/eureka/apps/',
  },
});

client.start((err) => {
  if (err) {
    console.error('Failed to start Eureka client:', err);
  } else {
    console.log('Eureka client started and registered');
    const instances = client.getInstancesByAppId('other-service');
    console.log('Instances:', instances);
    setTimeout(() => client.stop(), 10000);
  }
});