Skip to content

DWTechs/Healix-express.js

Repository files navigation

License: MIT npm version last version release date Jest:coverage

Synopsis

Healix-express.js is an open source Healix gateway toolset for Express.js.

  • 🪶 Very lightweight
  • ⚡ High performance
  • 🔧 Easy to use
  • 🧪 Thoroughly tested
  • 🚚 Shipped as ECMAScript Express route
  • 📝 Written in TypeScript

Support

  • node: 22

This is the oldest targeted version.

Installation

$ npm i @dwtechs/healix-express

Usage

import express from "express";
import healixRouter from "@dwtechs/healix-express";
import { errorHandler } from "@dwtechs/errandler-express";

const app = express();
app.disable("x-powered-by");

// Mandatory health check endpoint
app.use("/health", healixRouter);

// Your application routes
app.use("/api/users", ...);
app.use("/api/products", ...);

// Error handling (must be last)
errorHandler(app);

app.listen(3000, () => {
  console.log("Server running on port 3000");
  console.log("Health check available at http://localhost:3000/health");
});

The health endpoint returns:

{
  "uptime": 123.456,
  "message": "OK",
  "timestamp": 1700000000000
}

Endpoint: GET /

Returns the health status of the service.

Response (200 OK):

{
  uptime: number;      // Process uptime in seconds
  message: string;     // Always "OK"
  timestamp: number;   // Current Unix timestamp in milliseconds
}

Health Check Script

The package includes a standalone health check script (test.js) designed for container orchestrators like Docker Compose and Kubernetes.

Usage with Docker Compose

services:
  my-service:
    image: my-app
    environment:
      - PORT=3000
      - HOST=127.0.0.1
    healthcheck:
      test: ["CMD", "node", "/usr/src/app/node_modules/@dwtechs/healix-express.js/dist/test.js"]
      interval: 30s
      timeout: 3s
      retries: 3
      start_period: 10s

Usage with Kubernetes

livenessProbe:
  exec:
    command: ["node", "/usr/src/app/node_modules/@dwtechs/healix-express.js/dist/test.js"]
  initialDelaySeconds: 10
  periodSeconds: 30
  timeoutSeconds: 3
readinessProbe:
  exec:
    command: ["node", "/usr/src/app/node_modules/@dwtechs/healix-express.js/dist/test.js"]
  initialDelaySeconds: 5
  periodSeconds: 10

Environment Variables

  • PORT: The port your service listens on (default: 3000)
  • HOST: The host to check (default: 127.0.0.1)

The script makes an HTTP GET request to http://${HOST}:${PORT}/health and exits with:

  • Exit code 0 if the health check returns HTTP 200
  • Exit code 1 if the check fails or times out (2 seconds)

Stack

Purpose Choice Motivation
repository Github hosting for software development version control using Git
package manager npm default node.js package manager
language TypeScript static type checking along with the latest ECMAScript features
module bundler Rollup advanced module bundler for ES6 modules
unit testing Jest delightful testing with a focus on simplicity

About

Open source health check route for Express.js services

Resources

License

Stars

Watchers

Forks

Packages

No packages published