1.5.1 • Published 7 months ago
ekspres v1.5.1
ekspres
Listen
import { App } from 'ekspres';
const app = new App();
app.setPort(3000);
app.listen((port: number) => console.log(`App running at ${port}`));
Get Server
import { App } from 'ekspres';
const app = new App();
console.log(app.getServer()); // http.Server
Middleware
import { App } from 'ekspres';
const app = new App();
app.setMiddlewares([
(req, res, next) => {
console.log('middleware 1');
next();
},
(req, res, next) => {
console.log('middleware 2');
next();
},
]);
Route
import { App, Router } from 'ekspres';
const app = new App();
const testRoute = new Router()
.setPath('/')
.setMethod('get')
.handle(async () => 'Ok')
.make();
app.setRoutes([testRoute]);
Route Group
import { App, RouterGroup } from 'ekspres';
const app = new App();
const testRoute = new RouterGroup()
.handle({
path: '/',
method: 'Get',
handler: async () => 'Ok',
})
.handle({
path: '/',
method: 'post',
handler: async () => 'Ok',
})
.make();
app.setRoutes([testRoute]);
Throw Http Error
import { App, Router, HttpError } from 'ekspres'
const app = new App
const testRoute = new Router()
.setPath('/')
.setMethod('get')
.handle(async () => {
throw new HttpError(
{
name: 'Forbidden',
message: 'You dont have access',
},
403,
),
})
.make()
app.setRoutes([
testRoute
])
Query Middleware
import { App, Router, createQueryMiddleware } from 'ekspres'
const app = new App();
app.setRoutes([
new Router()
.setPath('/')
.setMethod('get')
.addMiddlewares([createQueryMiddleware().forAll])
.handle(async (context) => context?.req.query)
.make(),
new Router()
.setPath('/')
.setMethod('get')
.addMiddlewares([createQueryMiddleware().forSingle])
.handle(async (context) => context?.req.query)
.make();
]);
Request Validator
import {
App,
Router,
Request,
RequestPath,
createRequestValidator,
} from 'ekspres';
const app = new App();
const router = new Router();
class CreateUserRequest extends Request {
path: RequestPath = 'body'; // 'params' | 'query' | 'body' (default body)
schema(): Schema {
return Joi.object({
email: Joi.string().email().required(),
});
}
}
app.setRoutes([
router
.setPath('/')
.setMethod('post')
.addMiddlewares([createRequestValidator(CreateUserRequest)])
.handle(async (context) => context.body)
.make(),
]);