/** * server.ts * * A server which returns the number * of hits to any given path since * the server started running. * * This is an example, meant to illustrate using * the API provided by deno-sqlite. */ import { serve } from "https://deno.land/std@0.134.0/http/mod.ts"; import { DB } from "../mod.ts"; const db = new DB(); db.query(` CREATE TABLE visits ( id INTEGER PRIMARY KEY AUTOINCREMENT, url TEXT NOT NULL, visited_at TEXT NOT NULL ) `); const addVisitQuery = db.prepareQuery( "INSERT INTO visits (url, visited_at) VALUES (:url, :time)", ); const countVisitsQuery = db.prepareQuery<[number]>( "SELECT COUNT(*) FROM visits WHERE url = :url", ); console.log("Running server on localhost:8080"); await serve((req) => { addVisitQuery.execute({ url: req.url, time: new Date(), }); const [count] = countVisitsQuery.one({ url: req.url }); return new Response(`This page was visited ${count} times!`); }, { port: 8080 });