Complete Example
A complete Novaxjs2 application demonstrating multiple features.
const Nova = require('novaxjs2');
const app = new Nova();
// Global styles and scripts
app.style = `
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 20px;
background: #f5f5f5;
}
`;
app.js = 'console.log("App initialized");';
// Middleware
app.useMiddleware((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
});
// CORS
app.cors({
origins: ['http://localhost:3000'],
methods: ['GET', 'POST']
});
// File upload limit
app.setFileSizeLimit(10); // 10MB
// Routes
app.get('/', (req, res) => {
return `
<h1>Welcome to Novaxjs2</h1>
<p>This is a sample application.</p>
`;
});
app.get('/api/users', (req, res) => {
res.json([
{ id: 1, name: 'John Doe' },
{ id: 2, name: 'Jane Smith' }
]);
});
app.post('/api/users', (req, res) => {
const newUser = req.body;
// Save to database...
res.status(201).json({ success: true, user: newUser });
});
app.post('/upload', (req, res) => {
if (!req.files || !req.files.file) {
return res.status(400).json({ error: 'No file uploaded' });
}
res.json({ message: 'File uploaded successfully' });
});
// Error handling
app.on(404, () => {
return '<h1>404 - Page Not Found</h1>';
});
app.error((err, req, res) => {
console.error(err);
return '<h1>500 - Server Error</h1>';
});
// Start server
app.at(3000, () => {
console.log('Server running on port 3000');
});