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
- criar um projeto nestjs e instalar a lib necessária
- executar (levantar) a api
- 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