29 lines
735 B
TypeScript
29 lines
735 B
TypeScript
import { Application, Router } from "https://deno.land/x/oak@v10.2.0/mod.ts";
|
|
|
|
const app = new Application();
|
|
|
|
// First we try to serve static files from the _site folder. If that fails, we
|
|
// fall through to the router below.
|
|
app.use(async (ctx, next) => {
|
|
try {
|
|
await ctx.send({
|
|
root: `${Deno.cwd()}/_site`,
|
|
index: "index.html",
|
|
});
|
|
} catch {
|
|
next();
|
|
}
|
|
});
|
|
|
|
const router = new Router();
|
|
|
|
// The /api/time endpoint returns the current time in ISO format.
|
|
router.get("/api/time", (ctx) => {
|
|
ctx.response.body = { time: new Date().toISOString() };
|
|
});
|
|
|
|
// After creating the router, we can add it to the app.
|
|
app.use(router.routes());
|
|
app.use(router.allowedMethods());
|
|
|
|
await app.listen({ port: 8000 });
|