mirror of
https://github.com/denoland/deno.git
synced 2024-12-23 15:49:44 -05:00
c016684653
- Remove ability to specify run arguments like `--allow-net` after the script argument. It's too hacky to make work with clap. - Remove `--v8-options`, instead use `--v8-flags=--help` - Give more descriptive names to unit tests in flags.rs - Assume argv and subcommand into DenoFlags struct so the output of flags module is only DenoFlags rather than the tuple (subcommand, flags, argv). - Improve CLI help text - Make `deno run` specific args like `--allow-net` only show up in 'deno help run' instead of as global flags in `deno help`. - Removes `deno version` to simplify our implementation and be closer to clap defaults. `deno -V` now only shows Deno's version and not V8's nor TypeScript. `Deno.versions` can be used to see that information. - Prevent clap from auto-detecting terminal width and attempting to wrap text. |
||
---|---|---|
.. | ||
testdata | ||
cookie.ts | ||
cookie_test.ts | ||
file_server.ts | ||
file_server_test.ts | ||
http_bench.ts | ||
http_status.ts | ||
racing_server.ts | ||
racing_server_test.ts | ||
README.md | ||
server.ts | ||
server_test.ts |
http
import { serve } from "https://deno.land/std/http/server.ts";
const body = new TextEncoder().encode("Hello World\n");
const s = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of s) {
req.respond({ body });
}
File Server
A small program for serving local files over HTTP
deno --allow-net --allow-read https://deno.land/std/http/file_server.ts
> HTTP server listening on http://0.0.0.0:4500/
Cookie
Helper to manipulate Cookie
through 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.