bunnet
v0.0.6
Published
Developer-friendly library for building and managing powerful APIs with ease and efficiency
Downloads
8
Maintainers
Readme
bunNET
Developer-friendly library for building and managing powerful APIs with ease and efficiency
Installation
You can install bunNET
via bun by running the following command:
bun install bunnet
Usage
To use bunNET
in your project, follow these steps:
- Import the
bunnet
singleton into your project and create a class to set up your HTTP server:
import bunnet from 'bunnet';
const app = bunnet();
- Define routes and associated handler functions for different HTTP methods:
app.get('/api/resource', (req, res) => {
// Your GET request handler logic here
});
app.post('/api/resource', (req, res) => {
// Your POST request handler logic here
});
// Add more routes as needed...
Dynamic Routes
You can define dynamic routes using :
in your route paths. For example:
app.get('/api/user/:id', (req, res) => {
const userId = req.params.id;
// Your logic to handle requests with a dynamic user ID
});
Request Functions
The
BunNETRequest
class provides several utility functions for working with the request body:text()
: Reads the request body as text.json()
: Parses the request body as JSON.formData()
: Parses the request body as form data.blob()
: Reads the request body as a binary blob.array()
: Reads the request body as an array of bytes.arrayBuffer()
: Reads the request body as an ArrayBuffer.
Here's an example of how to use the
text()
andjson()
functions:app.post('/api/submit', async (req, res) => { try { const requestBodyText = await req.text(); const requestBodyJSON = await req.json(); // Process the request body data // ... res.send('Request received and processed.'); } catch (error) { console.error('Error processing request:', error); res.status(500).send('Internal server error'); } });
Start the server by specifying a port number:
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
- Run your application:
bun your-app.js/ts
License
This project is licensed under the MIT License - see the LICENSE file for details.