Examples
Overview
Practical examples and use cases for RNode Server.
Essential Examples:
- Basic server setup
- Middleware integration
- Router usage
- File operations
Complete Code Samples:
- Working examples for every feature
- Copy-paste ready code
- Best practices included
Production Patterns:
- Authentication middleware
- Error handling
- Performance optimization
- Security best practices
Code Examples
- Middleware - Middleware patterns and examples
- File Operations - File upload, download, and management
- Advanced Usage - Advanced patterns and techniques
- OpenAPI - API documentation generation example
Quick Examples
Basic Server
javascript
import { createApp } from 'rnode-server';
const app = createApp();
const port = 3000;
app.get('/hello', (req, res) => {
res.json({ message: 'Hello World!' });
});
app.listen(port, () => {
console.log(`🚀 Server started on port ${port}`);
});With Middleware
javascript
// Global middleware
app.use((req, res, next) => {
req.setParam('timestamp', Date.now());
next();
});
// Route-specific middleware
app.use('/api', (req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
next();
});Router Example
javascript
import { Router } from 'rnode-server';
const usersRouter = Router();
usersRouter.get('/', (req, res) => {
res.json({ users: [] });
});
usersRouter.post('/', (req, res) => {
res.json({ created: true });
});
app.useRouter('/api/users', usersRouter);File Upload
javascript
app.upload('/upload', {
folder: './uploads',
maxFileSize: 10 * 1024 * 1024, // 10MB
allowedExtensions: ['.png', '.jpg', '.pdf']
});
app.post('/upload', (req, res) => {
if (req.hasFile('document')) {
const file = req.getFile('document');
res.json({ success: true, file: file.filename });
} else {
res.status(400).json({ error: 'No file uploaded' });
}
});OpenAPI Documentation
javascript
app.openapi({
title: 'My API',
version: '1.0.0',
description: 'High-performance API',
servers: [
{ url: 'http://localhost:3000', description: 'Development' }
],
apis: ['./src/**/*.ts']
});
/**
* @swagger
* /api/users:
* get:
* summary: Get users
* tags: [Users]
* responses:
* 200:
* description: List of users
*/
app.get('/api/users', (req, res) => {
res.json({ users: [] });
});Static Files
javascript
app.static('./public', {
cache: true,
maxAge: 3600, // 1 hour
gzip: true,
allowHiddenFiles: false
});Common Patterns
Authentication Middleware
javascript
const authMiddleware = (req, res, next) => {
const token = req.getHeader('authorization');
if (!token) {
return res.status(401).json({ error: 'No token provided' });
}
try {
const user = validateToken(token);
req.setParam('user', user);
next();
} catch (error) {
res.status(401).json({ error: 'Invalid token' });
}
};
app.use('/api/protected', authMiddleware);Error Handling
javascript
app.use((error, req, res, next) => {
console.error('Error:', error);
res.status(500).json({
error: 'Internal Server Error',
message: process.env.NODE_ENV === 'development' ? error.message : 'Something went wrong'
});
});CORS Setup
javascript
app.use('/api', (req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
if (req.method === 'OPTIONS') {
res.json({ success: true, message: 'Preflight OK' });
return;
}
next();
});Next Steps
- Guide - Getting started tutorials
- API Reference - Complete API documentation
- Architecture - System design overview