Create una cuenta en Deno Deploy
Crear un nuevo proyecto en la nube
Cuando das un click en el boton New project, este crea un nuevo proyecto, con el siguiente codigo:
import { serve } from "https://deno.land/std@0.145.0/http/server.ts";
serve((req: Request) => new Response("Hello World"));
Esto simplemente es un manejador de function que recibe una peticion y responde un Hello world. Lo importante es notar que tenemos una URL, esta es la URL de nuestro proyecto ya desplegado en produccion usando Edge Functions, es decir ya esa disponible a nivel Global en mas de 30 regiones.
Crea un proyecto nuevo en Local
mkdir deno-deploy-tutorial cd deno-deplo-tutorial touch index.js
git init git add . git commit -m "first commit"
git push
Una vez subido puedes tu repositorio de Github. Puede ir al panel de control de Deno deploy, conectarlo con Github y desplegarlo.
obtendras una URL y Listo ya esta desplegada tu aplicacion.
Oak
Ahora probemos usando algun framework de Deno, como Oak, el cual permite desarrollar un backend de forma rapida (Este framework es su equivalente a Express en Nodejs).
import { Application } from "https://deno.land/x/oak/mod.ts";
const app = new Application();
app.use((ctx) => {
ctx.response.body = "Hello World!";
});
await app.listen({ port: 8000 });
Has un git push y listo ya estaría desplegado en la nube, y la actualizacion tomaria solo unos segundos.
Multiples Rutas
Pero ahora creaemos una API con muchas más Rutas:
import { Application, Router } from "https://deno.land/x/oak@v10.6.0/mod.ts";
const app = new Application();
const tasks = [];
const tasksRoutes = new Router()
.get("/", (ctx) => {
ctx.response.body = "Welcome to my API";
})
.get("/tasks", (ctx) => {
ctx.response.body = tasks;
})
.post("/tasks", async (ctx) => {
const newTask = await ctx.request.body().value;
tasks.push(newTask);
ctx.response.body = newTask;
});
app.use(tasksRoutes.routes());
app.use(tasksRoutes.allowedMethods());
console.log("Server running on port 8000");
await app.listen({ port: 8000 });
Si haces un git push, podras probar ahora tu API con la direccion creada.
Tambien puedes ejecutar con
deno run index.js