Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/medishen/gland
Gland is a lightweight framework for Node.js designed for simplicity
https://github.com/medishen/gland
freamework gland http web
Last synced: about 1 month ago
JSON representation
Gland is a lightweight framework for Node.js designed for simplicity
- Host: GitHub
- URL: https://github.com/medishen/gland
- Owner: medishen
- License: mit
- Created: 2024-07-27T23:09:30.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-12-22T10:59:29.000Z (about 1 month ago)
- Last Synced: 2024-12-22T11:33:29.826Z (about 1 month ago)
- Topics: freamework, gland, http, web
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@medishn/gland
- Size: 216 KB
- Stars: 5
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: docs/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: docs/CODE_OF_CONDUCT.md
- Security: docs/SECURITY
Awesome Lists containing this project
README
# Gland
`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.
## Features
- **Modular Configuration**: Load and configure modules dynamically.
- **Middleware Support**: Easily add and manage middleware functions.
- **Routing**: Define routes using decorators for different HTTP methods.## Installation
You can install `@medishn/gland` via npm:
```bash
npm install @medishn/gland
```## Basic Usage
To get started with `@medishn/gland`, follow these steps:
1. **Create a Basic Server**
```typescript
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');
});
```2. **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:```conf
path = path.join(__dirname, 'router');
router {
[0]: 'index.ts';
[1]: 'test.ts';
}
cache = true;
watch = true;
```3. **Create Router:(/router/example.ts)**
```typescript
import { Context, Get, Route } from '@medishn/gland';@Route('/')
export class Test {
@Get()
test(ctx: Context) {
ctx.write('hello world');
ctx.end();
}
}
```## Middleware
You can add middleware functions to your Gland instance:
```typescript
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);
```## Routing
Define routes using decorators:
```typescript
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();
}
}
```## Contributing
We welcome contributions to the Gland project. Please follow these steps:
1. Fork the repository.
2. Clone your fork and create a new branch.
3. Make your changes and write tests.
4. Commit your changes with a descriptive message.
5. Push your changes and create a pull request.For more details, see the [CONTRIBUTING.md](docs/CONTRIBUTING.md).
## Security
For information on security practices and reporting vulnerabilities, please refer to [SECURITY.md](docs/SECURITY.md).
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
## Contact
For any questions or further assistance, please reach out to us at [[email protected]](mailto:[email protected]).