Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Rivier Grullon
Rivier Grullon

Posted on

     

Getting started with Deno (Spanish)

Este es el segundo post ya sobre Deno en español, la primera parte esta en este enlace:First look with deno(Spanish).

Configurando el entorno de trabajo.

Pasando a la instalación de Deno, abriendo la terminal digitan el siguiente comando:

Shell (macOS, Linux):

curl -fsSL https://deno.land/x/install/install.sh | sh

PowerShell (Windows):

iwr https://deno.land/x/install/install.ps1 -useb | iex

ya instalado Deno en el editor de código asumiendo que es Visual Studio Code pasamos a instalar la extensión que soporta a deno dejustjack

Alt Text

ya instalada, en la carpeta .vscode se crea el archivo settings.json. Dentro del archivo se pone

//settings.json{"deno.enable":true,}
Enter fullscreen modeExit fullscreen mode

Comencemos a construir la Rest API

la estructura del proyecto será

.├── mod.ts├── controllers│   └── handlers.ts└── routes    └── routes.ts
Enter fullscreen modeExit fullscreen mode

usaremos el framework Oak.

Comencemos por crear el archivo mod.ts importando Application dehttps://deno.land/x/oak/mod.ts y el enrutador de './routes/routes.ts'

import{Application}from'https://deno.land/x/oak/mod.ts'importrouterfrom'./routes.ts'
Enter fullscreen modeExit fullscreen mode

despues se crea el setup del entorno ya sea para poner en deploy o hacerlo local

constenv=Deno.env.toObject();constPORT=env.PORT||3000;constHOST=env.HOST||'localhost';
Enter fullscreen modeExit fullscreen mode

Ahora creamos el archivo routes.ts:

import{Router}from'https://deno.land/x/oak@v4.0.0/mod.ts';import{getDog,deleteDog,updateDog,addDog,getDogs}from'../controllers/handlers.ts';constrouter=newRouter()router.get('/dogs',getDogs).get('/dogs/:id',getDog).post('/dogs',addDog).put('/dogs/:id',updateDog).delete('/dogs/:id',deleteDog)exportdefaultrouter
Enter fullscreen modeExit fullscreen mode

(Las funciones implementadas en estas rutas se crean en el archivo handlers.ts)

ya con esto terminamos nuestro mod.ts

constapp=newApplication();console.log(`App is listening in${HOST} in port${PORT}`);app.use(router.routes());app.use(router.allowedMethods());awaitapp.listen(`${HOST}:${PORT}`);
Enter fullscreen modeExit fullscreen mode

Ahora creamos nuestro handlers.ts primero declarando la interfaz para el arreglo de perros

interfaceDogs{id:string,name:string,age:number};letdogs:Array<Dogs>=[{id:"1",name:'Pepe',age:2},{id:"2",name:'ajio',age:3}];
Enter fullscreen modeExit fullscreen mode

creamos el metodo getDogs:

constgetDogs=({response}:{response:any})=>{response.body=dogs}
Enter fullscreen modeExit fullscreen mode

Alt Text

getDog: retorna un solo perro

constgetDog=({params,response}:{params:{id:string};response:any})=>{constdog:Dogs|undefined=searchDogById(params.id)if(dog){response.status=200response.body=dogs[0]}else{response.status=404response.body={message:`dog not found.`}}}
Enter fullscreen modeExit fullscreen mode

Alt Text

addDog: crea un nuevo perro

constaddDog=async({request,response}:{request:any;response:any})=>{constbody=awaitrequest.body()constdog:Dogs=body.valuedogs.push(dog);response.body={message:'OK'}response.status=200}
Enter fullscreen modeExit fullscreen mode

Alt Text
Alt Text

updateDog: actualizar algun dato del perro

constupdateDog=async({params,request,response}:{params:{id:string};request:any;response:any})=>{letdog:Dogs|undefined=searchDogById(params.id)if(dog){constbody=awaitrequest.body()constupdateInfos:{id?:string;name?:string;age?:number}=body.valuedog={...dog,...updateInfos}dogs=[...dogs.filter(dog=>dog.id!==params.id),dog]response.status=200response.body={message:'OK'}}else{response.status=404response.body={message:`Dog not found`}}}
Enter fullscreen modeExit fullscreen mode

Alt Text
Alt Text

delete: para eliminar un perro especifico buscando por su id

constdeleteDog=({params,response}:{params:{id:string};response:any})=>{dogs=dogs.filter(dog=>dog.id!==params.id)response.body={message:'OK'}response.status=200}constsearchDogById=(id:string):(Dogs|undefined)=>dogs.filter(dog=>dog.id===id)[0]export{getDogs,getDog,updateDog,deleteDog,addDog}
Enter fullscreen modeExit fullscreen mode

Alt Text

Fin

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

Hi there!, I'm Rivier
  • Location
    Dominican Republic
  • Education
    Cincinnatus Institute of Craftmanship
  • Work
    Software Developer at Intellisys D. Corp
  • Joined

More fromRivier Grullon

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp