Webinar de Nest Framework

4min

En este artículo vamos a presentar el Webinar de NestJS que hemos impartido en Arsys sobre el popular framework para la plataforma NodeJS, que nos ofrece una arquitectura superior a cualquier otra alternativa de desarrollo para backend con Javascript.

Además del texto resumen del webinar acompañamos el vídeo de la grabación, que ya está publicado en nuestro canal de Youtube. El Webinar está compuesto por dos partes fundamentales, una primera dedicada a presentar el framework y una segunda dedicada a la práctica.

Índice

Presentación de Nest

La primera parte del Webinar ocupó 10 minutos en los que realizamos un acercamiento teórico al framework, abordando los siguientes puntos.

Por qué Nest

Desarrollar en Javascript no es una tarea sencilla. Es cierto que es un lenguaje adecuado para comenzar a aprender programación, porque iniciarse resulta sencillo, incluso hasta para personas sin experiencia. Sin embargo, cuando avanzamos en el lenguaje nos damos cuenta que tiene muchas características como la asincronía que complican la existencia de los desarrolladores.

También se dice que Javascript tiene la ventaja de permitir desarrollar en todos los ámbitos, tanto en la web del lado del cliente como en el lado del servidor Es totalmente cierto, sin embargo, si tenemos experiencia en el frontend y tratamos de pasarnos al backend, observaremos que la progresión no es tan fácil. Básicamente en backend nos encontramos con la necesidad de hacer aplicaciones complejas y crear proyectos medianos o grandes sin unas guías claras en lo que respecta a la arquitectura, o suficiente experiencia, resulta complicado.

Qué es Nest

Es un framework backend que se ejecuta sobre la plataforma NodeJS. Esto quiere decir que podemos realizar aplicaciones web del lado del servidor, pero también aplicaciones standalone para ejecutarse en los ordenadores de los usuarios de manera autónoma.

La característica más destacable de Nest es que está centrado en ofrecer una arquitectura sólida para el desarrollo de las aplicaciones, basada en orientación a objetos. Para ello usa TypeScript como lenguaje de programación, que ya sabemos que es un superset de Javascript.

La arquitectura nos permite disponer de una dirección clara en lo que respecta al desarrollo, consiguiendo aplicaciones más robustas, escalables y mantenibles. Además está profundamente inspirado en Angular, lo que hace que sea muy sencillo para los que conocen este framework de frontend pasarse al desarrollo del backend.

Para conseguir estos objetivos Nest Framework incluye muchos de los artefactos que conocemos de Angular, como modelos, controladores o servicios. Además, ofrece un CLI que nos permite crear la estructura inicial de las aplicaciones, con todas las herramientas ya configuradas, como el compilador de TypeScript, la compilación automática según guardamos los archivos de código, la creación del esqueleto de código de los artefactos, etc.

Práctica de trabajo con Nest

En esta parte del webinar nos dedicamos de manera práctica a usar Nest y mostrar el proceso de creación de nuevos proyectos, además de implementar algunas partes esenciales de las aplicaciones.

Cómo empezar con Nest Framework y resumen de la arquitectura

Empezar con Nest es sencillo. Simplemente debemos asegurarnos de tener instalado NodeJS y a continuación instalar el CLI con el siguiente comando.

npm i -g @nestjs/cli

Luego crearemos aplicaciones nuevas. Esta parte no la vamos a resumir con detalle, ya que la explicamos con detalle en el post que Qué es Nest Framework.

Cómo atender a las solicitudes HTTP

Como hemos dicho, una de las principales áreas donde podemos aplicar Nest es en la creación de servicios web. Estos servicios web básicamente responden solicitudes HTTP. En esta parte del webinar se mostró la facilidad con las que se pueden atender rutas en los controladores. Además se vio cómo recibir parámetros en las rutas, mediante el decorador @Param.

@Get(':id')
find(@Param('id') id: number) {
    return `El producto que quieres recibir es ${id}`;
}

Cómo acceder a las bases de datos

Por último se mostró una serie de ejemplos mediante los cuales se realiza el acceso a las bases de datos, usando uno de los ORM que tenemos directamente integrado en Nest: TypeORM. Se mostró cómo se crean las conexiones con la base de datos, por medio del módulo TypeOrmModule que usamos desde el módulo principal de la aplicación.

@Module({
  imports: [ProductsModule, TypeOrmModule.forRoot({
    type: 'mysql',
    host: 'localhost',
    port: 3306,
    username: 'user',
    password: 'passwd',
    database: 'base_datos_nest',
    retryDelay: 1000,
    autoLoadEntities: true,
    synchronize: true,
  })],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

Luego se vio cómo usar los repositorios, un tipo de clase definida como @Provider, que nos ofrece directamente Nest y mediante los cuales podemos acceder a los datos de las entidades.

En el código siguiente podemos ver uno de los ejemplos explicados, donde se usa this.productRepository.findOne(id) para acceder directamente a un elemento dado su id.

async getId(id: number): Promise<Product> {
  let product = await this.productRepository.findOne(id);
  if(product) {
    return product;
  }
  throw new NotFoundException('No puedo encontrar ese producto');
}

Para obtener más detalles te invitamos a ver el webinar sobre donde analizamos qué es Nest Framework para NodeJS y para qué podemos usarlo.

Descubre otros webinars que vamos a realizar en los próximos meses y no dudes en registrarte en todos los que te interesen, para ello sólo tienes que entrar en la sección de webinars.

Fernán García de Zúñiga

Productos relacionados: