Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NodeFrame

A lightweight backend framework built on Node.js core HTTP APIs with zero external runtime dependencies.

npm version License: MIT Website Node Version

🌐 Website & Documentation: https://nodeframe.vercel.app
📦 NPM Package: @harshitclub/nodeframe


Installation

npm install @harshitclub/nodeframe

Requirement: Node.js >= 18 and "type": "module" in your package.json.


Quick Start

import NodeFrame, { parseJsonBody, logger } from "@harshitclub/nodeframe";

const app = new NodeFrame();

// Global middleware
app.use(logger());
app.use(parseJsonBody);

// Routes
app.get("/", (req, res) => {
  res.status(200).send("Hello from NodeFrame!");
});

app.get("/users/:id", (req, res) => {
  const { id } = req.params;
  const { filter } = req.query;

  res.status(200).json({
    success: true,
    user: { id, filter }
  });
});

app.post("/users", (req, res) => {
  const { name, role } = req.body;

  res.status(201).cookie("session", name, { httpOnly: true }).json({
    success: true,
    message: "User created",
    data: { name, role }
  });
});

// Start server
app.listen(3000, () => {
  console.log("Server running on http://localhost:3000");
});

Key Features

  • ⚡ Zero Dependencies — Built strictly on native Node.js core modules (http, url, buffer).
  • 🎯 Express-Style Routing — Methods for app.get(), post(), put(), patch(), and delete().
  • 🔤 Dynamic Route Parameters — Automatic segment extraction (/users/:id) to req.params.
  • 🔍 URL Query Parsing — WHATWG URLSearchParams parsed directly to req.query.
  • 🌊 Streaming JSON Parser — Built-in parseJsonBody with automatic 400 Bad Request handling for malformed JSON.
  • ⛓️ Chainable Response API — Fluent chaining on res.status(), res.json(), res.send(), and res.cookie().
  • 🛡️ Two-Tier Error Pipeline — Isolated 4-argument error handlers (err, req, res, next) with a 500 JSON fallback.
  • ⏱️ Request Logger — Built-in logger() recording request method, URL, status code, and duration on finish.
  • 🚦 In-Memory Rate Limiter — Built-in rateLimiter() tracking IP windows with 429 Too Many Requests.

Documentation

For comprehensive guides, architecture deep-dives, and the full API specification, visit:

👉 https://nodeframe.vercel.app


Author

Created by Harshit Kumar


License

MIT License © 2024–present Harshit Kumar

About

A lightweight backend framework built on Node.js core HTTP APIs, providing routing, middleware, request/response helpers, JSON parsing, error handling, logging, and rate limiting.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages