概要
denoのv0.28.1がリリースされたため、変更点をまとめます。
req.body
が関数からReader
に変更された(std/http)
req.body
をDeno.readAll
等のReader
を受け取る関数の引数として渡すことができるようになりました。
それに伴い、req.bodyStream()
メソッドが削除されています。
変更による影響
v0.28.0ではリクエストボディをデコードする際は下記のように処理が行われていましたが、
v0.28.0
import { serve } from "https://deno.land/std@v0.28.0/http/server.ts";
const server = serve({ port: 8000 });
for await (const req of server) {
const body = await req.body();
console.info(new TextDecoder("utf-8").decode(body));
...
}
v0.28.1では下記のように変更する必要があります。
v0.28.1
import { serve } from "https://deno.land/std@v0.28.1/http/server.ts";
const server = serve({ port: 8000 });
for await (const req of server) {
const body = await Deno.readAll(req.body);
console.info(new TextDecoder("utf-8").decode(body));
...
}
req.contentLength
が追加された(std/http)
Content-Length
ヘッダの値をnumber
型の値として返却します。
import { serve } from "https://deno.land/std@v0.28.1/http/server.ts";
const server = serve({ port: 8000 });
for await (const req of s) {
console.info(req.contentLength);
...
}
OpenSSLへの動的リンクに関する問題の修正
v0.28.0のリリース時に、reqwestというライブラリがv0.10.0にアップグレードされました。
その間にreqwestライブラリにOpenSSLへの依存が追加されました。(Linux環境のみ)
その関係で、一部Linux環境でdenoのビルドに失敗する問題が発生していたため、修正が実施されたようです。