Skip to main content

Advanced Features

Explore advanced features of Axiom Genesis.

Authentication

Implement authentication in your application:

import { Auth } from 'axiom-genesis';

const auth = new Auth(app);

auth.register({
strategy: 'jwt',
secret: process.env.JWT_SECRET
});

app.post('/auth/login', auth.login);
app.post('/auth/register', auth.register);

Database Integration

Connect to databases:

import { Database } from 'axiom-genesis';

const db = new Database(app, {
driver: 'postgresql',
connectionString: process.env.DATABASE_URL
});

const users = await db.query('SELECT * FROM users');

Validation

Validate request data:

import { Validator } from 'axiom-genesis';

const validator = new Validator();

app.post('/api/users',
validator.validate({
name: 'string|required',
email: 'email|required',
age: 'number'
}),
(req, res) => {
res.json({ message: 'User created' });
}
);

Caching

Implement caching:

import { Cache } from 'axiom-genesis';

const cache = new Cache(app, {
driver: 'redis',
ttl: 3600
});

app.get('/api/data',
cache.middleware(),
(req, res) => {
res.json({ data: 'cached data' });
}
);

Testing

Write tests for your application:

import { TestSuite } from 'axiom-genesis';

const suite = new TestSuite(app);

suite.test('GET /api/hello', async (assert) => {
const response = await suite.get('/api/hello');
assert.equals(response.status, 200);
assert.equals(response.body.message, 'Hello, World!');
});

Logging

Configure advanced logging:

import { Logger } from 'axiom-genesis';

const logger = new Logger(app, {
level: 'debug',
transports: [
{ type: 'console' },
{ type: 'file', path: './logs/app.log' }
]
});

logger.info('Application started');
logger.error('An error occurred', error);

Next Steps

Refer to the API Reference for comprehensive documentation on all available features.