BETA

Denoを使ってみる4(reqからurlを受け取って結果を返す)

投稿日:2020-09-14
最終更新:2020-09-14

【ファイル名決め打ちをどうにかする】

前回までの状態では、localhost:8000にアクセスしたときにindex.htmlを返すという動作しかできません。
今回はこれをどうにかしたいと思います。

ブラウザより受け取ったリクエストからurlを取り出して、合致するhtmlファイルを返してみます。

import { serve } from "https://deno.land/[email protected]/http/server.ts";  
const s = serve({ port: 8000 });  
console.log("http://localhost:8000/");  

for await (const req of s) {  
    const url_str = "." + req.url;  
    const req_file = await Deno.open(url_str);  
    req.respond({ body: req_file });  
}  

リクエストされたurlは「req.url」に入っているので、取り出してファイル名として使います。
例えば「http://localhost:8000/index.html」にアクセスした場合、req.urlには「/index.html」と入ってきます。
index.htmlはlocal_server.jsの直下に置いてあるので、"."を先頭に付けてファイルを読み込みます。

【実行する】

local_server.jsを実行します。
ブラウザでlocalhost:8000/index.htmlにアクセスします。

Hello, worldが無事、表示されました。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@jokerの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう