Skip to main content
Module

x/fastro/examples/plugin.ts

Fast and simple web application framework for deno
Go to Latest
File
import { Fastro } from "../mod.ts";const server = new Fastro();
// create global middleware// can be used on all routesserver.use((req, next) => { req.root = "root"; // you must call next callback if not send anything next();});
// create plugin that contain a middlewareconst plugin = function (server: Fastro, done: Function) { server.use("/plugin", (req, next) => { req.plugin = "plugin"; // you must call next callback if not send anything next(); }); done();};
server // register the plugin .register(plugin) .get("/plugin", (req) => { // use plugin middleware and root middleware req.send(`${req.plugin} & ${req.root}`); });
// create routes1 pluginconst routes1 = function (server: Fastro, done: Function) { server .get("/", (req) => req.send(req.root)) .post("/", (req) => req.send(req.root)); done();};
// create routes2 pluginconst routes2 = function (server: Fastro, done: Function) { server .put("/", (req) => req.send(req.root)) .delete("/", (req) => req.send(req.root)); done();};
// register all routesserver .register(routes1) .register(routes2);
// create middleware for v1 plugin// simple loggerserver.use("/v1", (req, done) => { console.log("v1==>", Date.now()); done();});
// create middleware for v2 plugin// simple loggerserver.use("/v2", (req, done) => { console.log("v2==>", new Date()); done();});
// you can add a prefix on your existing pluginserver // it can be accessed by this url. // http://localhost:3000/v1 .register("v1", routes1) // it can be accessed by this url. // http://localhost:3000/v2 .register("v2", routes2);
await server.listen();