1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-27 16:10:57 -05:00
denoland-deno/http
2019-05-30 08:59:30 -04:00
..
cookie.ts chore: Implement strict mode (denoland/deno_std#453) 2019-05-30 08:59:30 -04:00
cookie_test.ts chore: Implement strict mode (denoland/deno_std#453) 2019-05-30 08:59:30 -04:00
file_server.ts fix(fileserver): wrong url href of displayed files (denoland/deno_std#426) 2019-05-22 15:58:20 -07:00
file_server_test.ts chore: Implement strict mode (denoland/deno_std#453) 2019-05-30 08:59:30 -04:00
http_bench.ts Clean up HTTP async iterator code (denoland/deno_std#411) 2019-05-20 09:17:26 -04:00
http_status.ts Add missiong copyright headers (denoland/deno_std#177) 2019-02-07 11:45:47 -05:00
racing_server.ts Eslint fixes (denoland/deno_std#356) 2019-04-24 07:41:22 -04:00
racing_server_test.ts chore: Implement strict mode (denoland/deno_std#453) 2019-05-30 08:59:30 -04:00
README.md add "run" to file server alias (denoland/deno_std#460) 2019-05-27 17:56:10 -04:00
server.ts chore: Implement strict mode (denoland/deno_std#453) 2019-05-30 08:59:30 -04:00
server_test.ts chore: Implement strict mode (denoland/deno_std#453) 2019-05-30 08:59:30 -04:00
test.ts http : Add cookie module (denoland/deno_std#338) 2019-04-24 07:38:52 -04:00

http

A framework for creating HTTP/HTTPS server.

Helper to manipulate Cookie throught ServerRequest and Response.

import { ServerRequest } from "https://deno.land/std/http/server.ts";
import { getCookies } from "https://deno.land/std/http/cookie.ts";

let request = new ServerRequest();
request.headers = new Headers();
request.headers.set("Cookie", "full=of; tasty=chocolate");

const cookies = getCookies(request);
console.log("cookies:", cookies);
// cookies: { full: "of", tasty: "chocolate" }

To set a Cookie you can add CookieOptions to properly set your Cookie

import { Response } from "https://deno.land/std/http/server.ts";
import { Cookie, setCookie } from "https://deno.land/std/http/cookie.ts";

let response: Response = {};
const cookie: Cookie = { name: "Space", value: "Cat" };
setCookie(response, cookie);

const cookieHeader = response.headers.get("set-cookie");
console.log("Set-Cookie:", cookieHeader);
// Set-Cookie: Space=Cat

Deleting a Cookie will set its expiration date before now. Forcing the browser to delete it.

import { Response } from "https://deno.land/std/http/server.ts";
import { delCookie } from "https://deno.land/std/http/cookie.ts";

let response: Response = {};
delCookie(response, "deno");

const cookieHeader = response.headers.get("set-cookie");
console.log("Set-Cookie:", cookieHeader);
// Set-Cookie: deno=; Expires=Thus, 01 Jan 1970 00:00:00 GMT

Note: At the moment multiple Set-Cookie in a Response is not handled.

Example

import { serve } from "https://deno.land/std/http/server.ts";
const s = serve("0.0.0.0:8000");

async function main() {
  for await (const req of s) {
    req.respond({ body: new TextEncoder().encode("Hello World\n") });
  }
}

main();

File Server

A small program for serving local files over HTTP.

Add the following to your .bash_profile

alias file_server="deno run --allow-net https://deno.land/std/http/file_server.ts"