typescript - Hoe bestanden in Deno te serveren met serveFile?
Mijn script, zoals volgt, dat zonder fouten compileert, is bedoeld om index.html te serveren, maar er wordt nooit iets naar de browser gestuurd terwijl de pagina aangeeft dat deze aan het laden is.
import { serve } from "https://deno.land/[email /http/server.ts";
import { serveFile } from 'https://deno.land/[email /http/file_server.ts';
const server = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of server) {
console.log(req.url);
if(req.url === '/')
await serveFile(req, 'index.html');
}
Dus waarom werkt serveFile in dit geval niet?
Antwoord #1
De aanroep van serveFile maakt alleen een Response (status, headers, body) aan, maar verstuurt deze niet.
Je moet het verzenden met een aparte oproep naar req.respond():
import { serve } from "https://deno.land/[email /http/server.ts";
import { serveFile } from 'https://deno.land/[email /http/file_server.ts';
const server = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of server) {
console.log(req.url);
if(req.url === '/') {
const response = await serveFile(req, 'index.html');
req.respond(response)
}
}
