Gland
is a lightweight and extensible web server framework for Node.js. It provides a flexible and modular approach to building web applications, including support for middleware, routing, logging, and SQL query execution.
- Modular Configuration: Load and configure modules dynamically.
- Middleware Support: Easily add and manage middleware functions.
- Routing: Define routes using decorators for different HTTP methods.
You can install @medishn/gland
via npm:
npm install @medishn/gland
To get started with @medishn/gland
, follow these steps:
-
Create a Basic Server
import path from 'path'; import gland from '@medishn/gland'; const g = new gland(); g.load(path.join(__dirname, '.confmodule')); g.init(3000, () => { console.log('Server running on port 3000'); });
-
Define Routes and Handlers Create a
.confmodule
file to configure your routes, caching, and file-watching behavior. This file allows you to dynamically load and configure modules in your application. Below is an example configuration file:
path = path.join(__dirname, 'router');
router {
[0]: 'index.ts';
[1]: 'test.ts';
}
cache = true;
watch = true;
- Create Router:(/router/example.ts)
import { Context, Get, Route } from '@medishn/gland'; @Route('/') export class Test { @Get() test(ctx: Context) { ctx.write('hello world'); ctx.end(); } }
You can add middleware functions to your Gland instance:
import gland, { Context,NxtFunction } from '@medishn/gland';
const g = new gland();
const myMiddleware = async (ctx: Context, next: NxtFunction) => {
// Middleware logic here
await next();
};
g.use(myMiddleware);
Define routes using decorators:
import { Context, Get, Post, Route } from '@medishn/gland';
@Route('/example')
export class Example {
@Get()
getExample(ctx: Context) {
ctx.write('GET request');
ctx.end();
}
@Post()
postExample(ctx: Context) {
ctx.write('POST request');
ctx.end();
}
}
We welcome contributions to the Gland project. Please follow these steps:
- Fork the repository.
- Clone your fork and create a new branch.
- Make your changes and write tests.
- Commit your changes with a descriptive message.
- Push your changes and create a pull request.
For more details, see the CONTRIBUTING.md.
For information on security practices and reporting vulnerabilities, please refer to SECURITY.md.
This project is licensed under the MIT License. See the LICENSE file for details.
For any questions or further assistance, please reach out to us at bitsgenix@gmail.com.