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
- node: 22
This is the oldest targeted version.
$ npm i @dwtechs/healix-expressimport 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
}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
}The package includes a standalone health check script (test.js) designed for container orchestrators like Docker Compose and Kubernetes.
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: 10slivenessProbe:
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: 10PORT: 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
0if the health check returns HTTP 200 - Exit code
1if the check fails or times out (2 seconds)
| 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 |