https://github.com/eframix/eframix
A minimalistic and fast framework for building web applications in Node.js.
https://github.com/eframix/eframix
framework npm-package typescript
Last synced: 8 months ago
JSON representation
A minimalistic and fast framework for building web applications in Node.js.
- Host: GitHub
- URL: https://github.com/eframix/eframix
- Owner: Eframix
- Created: 2024-10-23T16:20:13.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-27T12:01:51.000Z (over 1 year ago)
- Last Synced: 2024-10-27T13:42:04.623Z (over 1 year ago)
- Topics: framework, npm-package, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/eframix
- Size: 3.45 MB
- Stars: 0
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Eframix




A minimalistic [Node.js](https://nodejs.org/en) framework inspired by Express.js, offering core routing, middleware, and JSON body parsing features with zero dependencies. Ideal for lightweight HTTP server applications.
## Table of Contents
- [Installation](#installation)
- [Features](#features)
- [Quick Start](#quick-start)
- [Examples](#examples)
- [Contributing](#contributing)
- [Technical Committee (TC)](#technical-committee-tc)
- [License](#license)
---
## Installation
Install `eframix` from npm:
```bash
npm install eframix
```
## Features
- **Routing**: Support for `GET`, `POST`, `PUT`, and `DELETE` methods.
- **Middleware**: Add global and route-specific middleware.
- **Body Parser**: Built-in JSON body parser for handling incoming request data.
- **Lightweight**: Minimal footprint, built on Node's HTTP module for efficient handling.
## Quick Start
Get started with a basic setup:
```typescript
import Router from 'eframix';
const app = new Router();
app.use(app.bodyParser);
app.get("/", (req, res) => {
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("Welcome to Eframix!");
});
app.post("/data", (req, res) => {
res.writeHead(201, { "Content-Type": "application/json" });
res.end(JSON.stringify({ received: req.body }));
});
app.startServer(3000, () => {
console.log("Server is running on port 3000");
});
```
## Examples
### Basic Movie API
Below is a sample structure for a movie API using `eframix`.
```typescript
import { addMovie, getAllMovies, getMovieByID, updateMovie, deleteMovie } from './routes/movieRoutes';
import Router from 'eframix';
const app = new Router();
app.use(app.bodyParser);
app.get("/api/movies", getAllMovies);
app.get("/api/movies/:id", getMovieByID);
app.post("/api/movies", addMovie);
app.put("/api/movies/:id", updateMovie);
app.delete("/api/movies/:id", deleteMovie);
app.startServer(5001, () => {
console.log("Server is running on port 5001");
});
```
## Contributing
We welcome contributions from the community! To get started:
1. Fork the repository on [GitHub](https://github.com/efraimnabil/eframix).
2. Create a branch with your feature or fix.
3. Open a pull request with a detailed description.
Please follow the coding standards and conventions in the repository.
## Technical Committee (TC)
The Technical Committee (TC) oversees the direction of `eframix`. Current members include:
- [Efraim Nabil](https://github.com/efraimnabil)
- [Mina Magdy](https://github.com/MiinaMagdy)
For more information on contributing, please visit our [GitHub](https://github.com/efraimnabil/eframix) repository.
## License
This project is licensed under the MIT License.