diff options
author | Bartek Iwańczuk <biwanczuk@gmail.com> | 2021-07-20 16:25:36 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-20 16:25:36 +0200 |
commit | d744c0c6d9a557bbaa2a23571ffb3acabf19c35a (patch) | |
tree | 6f7fb8a71b786e79c48f4b2c11a5a9ca988717e8 /docs/examples/http_server.md | |
parent | 9b9becf1ae256b645e37a7eecf3441f3ae4b8ea5 (diff) |
chore: move docs to separate repository
Diffstat (limited to 'docs/examples/http_server.md')
-rw-r--r-- | docs/examples/http_server.md | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/docs/examples/http_server.md b/docs/examples/http_server.md deleted file mode 100644 index af239dfd3..000000000 --- a/docs/examples/http_server.md +++ /dev/null @@ -1,88 +0,0 @@ -# Simple HTTP web server - -## Concepts - -- Use Deno's integrated HTTP server to run your own web server. - -## Overview - -With just a few lines of code you can run your own HTTP web server with control -over the response status, request headers and more. - -> ℹ️ The _native_ HTTP server is currently unstable, meaning the API is not -> finalized and may change in breaking ways in future version of Deno. To have -> the APIs discussed here available, you must run Deno with the `--unstable` -> flag. - -## Sample web server - -In this example, the user-agent of the client is returned to the client: - -**webserver.ts**: - -```ts -// Start listening on port 8080 of localhost. -const server = Deno.listen({ port: 8080 }); -console.log(`HTTP webserver running. Access it at: http://localhost:8080/`); - -// Connections to the server will be yielded up as an async iterable. -for await (const conn of server) { - // In order to not be blocking, we need to handle each connection individually - // in its own async function. - (async () => { - // This "upgrades" a network connection into an HTTP connection. - const httpConn = Deno.serveHttp(conn); - // Each request sent over the HTTP connection will be yielded as an async - // iterator from the HTTP connection. - for await (const requestEvent of httpConn) { - // The native HTTP server uses the web standard `Request` and `Response` - // objects. - const body = `Your user-agent is:\n\n${requestEvent.request.headers.get( - "user-agent", - ) ?? "Unknown"}`; - // The requestEvent's `.respondWith()` method is how we send the response - // back to the client. - requestEvent.respondWith( - new Response(body, { - status: 200, - }), - ); - } - })(); -} -``` - -Then run this with: - -```shell -deno run --allow-net --unstable webserver.ts -``` - -Then navigate to `http://localhost:8080/` in a browser. - -### Using the `std/http` library - -If you do not want to use the unstable APIs, you can still use the standard -library's HTTP server: - -**webserver.ts**: - -```ts -import { serve } from "https://deno.land/std@$STD_VERSION/http/server.ts"; - -const server = serve({ port: 8080 }); -console.log(`HTTP webserver running. Access it at: http://localhost:8080/`); - -for await (const request of server) { - let bodyContent = "Your user-agent is:\n\n"; - bodyContent += request.headers.get("user-agent") || "Unknown"; - - request.respond({ status: 200, body: bodyContent }); -} -``` - -Then run this with: - -```shell -deno run --allow-net webserver.ts -``` |