Lottieexpress++ es una extension de Express hecha con y para typescript.
npm i @enzodiazdev/lepp
API Reference: https://github.com/enzodiazdev/lepp/wiki
Contribuir: CONTRIBUTING.md
Indice
LEPP permite crear el servidor de express más común en apenas unas lineas de código, permitiendo que la estructura del proyecto se limite a un único archivo.
Esto ofrece una especial ventaja a la hora de crear prototipos o proyectos de portfolio, pues permite dar mayor visibilidad a tu funcionalidad o a tu algoritmo sin perderte entre las lineas y archivos de un proyecto típico de express.
Absolutamente nada.
Seguís teniendo acceso a la instacia app
de express, por ende podés seguir haciendo lo que siempre hiciste.
LEPP no añade ninguna funcionalidad sin que ejecutes un método para ello.
- Typescript. Si eso no te convence, empeza por acá: https://www.typescriptlang.org/
- Extensiones. Las extensiones son un conjunto de rutas, controladores básicamete, que se escriben utilizando decoradores.
Sí, e infinitamente mejores que ésta, pero tenés que aprenderte toda la librería de nuevo.
Acá solo aprendés a añadir extensiones (muy fácil).
Solo para quienes conozcan express y typescript. O sea que sí.
Usalo cuando necesites mostrar tus algoritmos y funcionalidades, cuando necesites crear prototipos.
No lo uses para proyectos profesionales porque no tiene mucho sentido, aunque nada te limita.
Inicia un proyecto de npm usando typescript.
También tengo un atajo para eso eh: https://github.com/enzodiazdev/lottiets
Instala la librería
npm i @enzodiazdev/lepp
Copia y pega.
import Lepp from "@enzodiazdev/lepp";
const lepp = new Lepp(3000); //<- Le pasas el puerto.
lepp.use_helmet()
.use_bodyparser()
.use_morgan("tiny"); //<- Seteas algunos middlewares, los que estén disponibles.
lepp.use_default_routes(); //<- Usa tres rutas predefinidas: index, error 404 y error 500.
//lepp.add_extension(Extension); //<- Acá añadírías tus extensiones. ANTES de iniciar el server, como siempre.
lepp.run(); //<- Iniciás el servidor
Ejecutá tu programa y entrá a http://localhost:3000.
Las extensiones son un conjunto de rutas.
LEPP provee un par de decoradores de clases y métodos para crearlas.
- Controller
- Get, Put, Post, Update, Delete
Pasos para crear una extension
- Importa los decoradores
- Crea una clase con el nombre que quieras ponerle a tu extensión
- Decora la clase con el decorador
Controller()
, si querés le pasas una ruta como parametro, para que todas las rutas que crees queden bajo esa. - La clase no necesita una funcion constructora para funcionar, solo requiere del decorador.
- Crea un método y colocale el decorador del verbo que quieras, por ejemplo
@Get()
. Idealmente pasale como parametro una ruta para que tenga sentido crear rutas, ¿no? - Usa el método
.add_extension(Extension)
de tu instancia deLepp
, y pasale LA CLASE (no le pases una instacia), es decir la extension. - Lee el código de abajo para que quede más claro
import Lepp, {decorators} from "@enzodiazdev/lepp";
//destructuring
const {Controller, Get} = decorators;
//GET http://localhost:PORT/foo/bar
@Controller("/foo")
class Foo {
@Get("/bar")
public bar(req:Request, res:Response){
res.send("bar!");
}
}
lepp.add_extension(Foo);
Muy fácil, ¿no?
También podés usar las extensiones de otros, y reutilizarlas en otros proyectos.
Extensiones recomendadas
- Ninguna por el momento. Nota: Desde la 1.6.5, Lepp ya no provee exensiones, éstas se instalan como dependencias de npm
Estos son los middlewares predefinidos, por popularidad.
Igual podés añadir todos los que quieras usando el método .use()
Para añadir más middlewares predefinidos, por favor crea un pull request o deja un issue solicitandolo.
Cuando vea que se pone un poco complicado de explicar, escribiré ejemplos, pero considero que es demasiado fácil de entender.
Licencia MIT.
Metele a los issues por cualquier duda, idea o error que tengas. Ni lo dudes.