Nest – Upload de arquivo



This content originally appeared on DEV Community and was authored by Leonardo Minora

objetivo

  • criar 1 endpoint para API de upload de arquivo

notas de aula

  1. criar um projeto nestjs e instalar a lib necessária
  2. executar (levantar) a api
  3. módulo nestjs para upload

1. criar um projeto nestjs e instalar a lib necessária

## cria novo projeto nestjs
npx @nestjs/cli --package-manager npm new upload-api

## após criado o projeto, e em tudo terminando ok
## acessa a pasta do projeto nestjs
cd upload-api

## instala a lib em modo desenvolvimento
npm install -D @types/multer

npm install @nestjs/swagger

o resultado deve parecer com o terminal abaixo.

$ npx @nestjs/cli --package-manager npm new upload-api
⚡  We will scaffold your app in a few seconds..

CREATE upload-api/.eslintrc.js (663 bytes)
CREATE upload-api/.prettierrc (51 bytes)
CREATE upload-api/README.md (3340 bytes)
CREATE upload-api/nest-cli.json (171 bytes)
CREATE upload-api/package.json (1955 bytes)
CREATE upload-api/tsconfig.build.json (97 bytes)
CREATE upload-api/tsconfig.json (546 bytes)
CREATE upload-api/src/app.controller.spec.ts (617 bytes)
CREATE upload-api/src/app.controller.ts (274 bytes)
CREATE upload-api/src/app.module.ts (249 bytes)
CREATE upload-api/src/app.service.ts (142 bytes)
CREATE upload-api/src/main.ts (208 bytes)
CREATE upload-api/test/app.e2e-spec.ts (630 bytes)
CREATE upload-api/test/jest-e2e.json (183 bytes)

✔ Installation in progress... ☕

🚀  Successfully created project upload-api
👉  Get started with the following commands:

$ cd upload-api
$ npm run start:dev


                          Thanks for installing Nest 🙏
                 Please consider donating to our open collective
                        to help us maintain this package.


               🍷  Donate: https://opencollective.com/nest

$ cd upload-api

[upload-api]$ npm i -D @types/multer

added 1 package, and audited 687 packages in 2s

106 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

[upload-api]$

2. executar (levantar) a api

levantar a api em modo de desenvolvimento para qualquer mudança nos códigos-fonte ser re-lançado a API.

executar a ferramenta npm com o comando run para executar o script start:dev.

[upload-api]$ npm run start:dev

resultado do comando acima deve ser algo parecido com o terminal abaixo.

[15:31:39] Starting compilation in watch mode...

[15:31:41] Found 0 errors. Watching for file changes.

[Nest] 620648  - 07/09/2024, 15:31:41     LOG [NestFactory] Starting Nest application...
[Nest] 620648  - 07/09/2024, 15:31:41     LOG [InstanceLoader] AppModule dependencies initialized +13ms
[Nest] 620648  - 07/09/2024, 15:31:41     LOG [RoutesResolver] AppController {/}: +5ms
[Nest] 620648  - 07/09/2024, 15:31:41     LOG [RouterExplorer] Mapped {/, GET} route +2ms
[Nest] 620648  - 07/09/2024, 15:31:41     LOG [NestApplication] Nest application successfully started +2ms

3. módulo nestjs para upload

num 2o terminal, executa o @nestjs/cli com o comando generate resource, podendo abreviar g res.

[upload-api]$ npx @nestjs/cli generate resource upload --flat --no-spec

o resultado do comando deverá parecer com o terminal abaixo.

[upload-api]$ npx @nestjs/cli generate resource upload --flat --no-spec
? What transport layer do you use? REST API
? Would you like to generate CRUD entry points? No
CREATE src/upload.controller.ts (216 bytes)
CREATE src/upload.module.ts (255 bytes)
CREATE src/upload.service.ts (90 bytes)
UPDATE package.json (2020 bytes)
UPDATE src/app.module.ts (309 bytes)
✔ Packages installed successfully.

em construção…


This content originally appeared on DEV Community and was authored by Leonardo Minora