Cuando me atasqué con un POST en Deno y como lo solucioné.

Azahara Fernández Guizán
2 min readAug 3, 2020

Creo que no aportaría mucho valor el contaros paso a paso como hacer una REST API con Deno, porque ya hay varios tutoriales y artículos que cuentan el proceso. Es por eso, que este post pretende ser corto y explicar el problema que yo tuve y cómo lo solucioné por si a alguien le ocurre lo mismo.

Descripción del problema

Yo tenía un método post en el archivo controller.ts de mi API Deno (estaba haciendo un pet project muy simple para conectar con una app en Vue). El código del mismo es el siguiente:

Como véis es muy simple, toma los datos que vienen en el body del request, los parsea a un objeto de tipo IReceivedConditions y luego se los pasa al servicio. ¿Cuál era el problema? Pues, que el objeto llegaba como {Promise}, pero nunca era capaz de obtener su contenido.

Solución del problema

Tras buscar mucha información y muchos artículos y probar diferentes formas de codificar el post, al final encontré la información oficial de Oak. Oak es un framework para Deno que ayuda con el enrutamiento.

De tal forma que se importa y se usa en el archivo app.ts tal que así (si quieres tener el CORS habilitado para todas las rutas, sino hay otra forma que explica en la documentación):

Luego en el método post, es necesario crear una variable que es el resultado de indicarle al request de que tipo es su body (en mi caso json), y a partir de la propiedad value de ese objeto ya podemos obtener los datos que le enviamos a nuestro server.

De paso, aproveché y dejé un poco mejor el método post:

Tan fácil como eso, pero me trajo bastantes horas de cabeza. Si te interesa ver la API entera, aunque ya te digo que sólo tiene un get y un post, está en este repositorio de Github.

— — — — — —

Espero que esta publicación te haya sido útil. Si es así, por favor, dale un voto positivo y compártelo en tus redes sociales. Si lo deseas, puedes encontrarme en Twitter y en Linkedin.

--

--

Azahara Fernández Guizán

Software Developer at Sngular. PhD on Immunology, always learning and trying to share knowledge. Microsoft Most Value Professional on Developer Technologies.