import { serve } from "https://deno.land/std/http/server.ts"; const s = serve({ port: 8000 }); console.log("http://localhost:8000/"); for await (const req of s) { req.respond({ body: "Hello World\n" }); } 複製代碼
對外暴露的 API:markdown
export class ServerRequest { // logic } 複製代碼
export class Server implements AsyncIterable<ServerRequest> { private closing = false; private connections: Conn[] = []; constructor(public listener: Listener) { } close(): void {} private async *iterateHttpRequests( conn: Conn ): AsyncIterableIterator<ServerRequest> {} private trackConnection(conn: Conn): void {} private untrackConnection(conn: Conn): void {} private async *acceptConnAndIterateHttpRequests( mux: MuxAsyncIterator<ServerRequest> ): AsyncIterableIterator<ServerRequest> {} [Symbol.asyncIterator](): AsyncIterableIterator<ServerRequest> {} } 複製代碼
function serve(addr: string | HTTPOptions): Server { if (typeof addr === "string") { const [hostname, port] = addr.split(":"); addr = { hostname, port: Number(port) }; } const listener = listen(addr); return new Server(listener); } 複製代碼
export async function listenAndServe(
addr: string | HTTPOptions,
handler: (req: ServerRequest) => void
): Promise<void> {}
複製代碼
export function serveTLS(options: HTTPSOptions): Server {} 複製代碼
export interface Response {} 複製代碼
Server 類的實例是可迭代的,內部包好 req, res 響應對象cookie